2010-12-31 11 views
0

私は最近、エンドコードがサブドメイン(http://user.domain.com/)またはサブドメイン(http://domain.com/user)、私はこれらの未知のシナリオのベストプラクティスについては迷っていました。ドメイン、サブドメイン、またはディレクタ用の移植可能なコードを作成するためのベストプラクティス

  1. 使用絶対パス(/css/styles.css)と、それは
  2. は、設定ファイルを持って、パスで変数を宣言したユーザ/されて終わる場合(<? php echo $domain . "/css/styles" ?>)をmodrewrite:私は、カップルを考えることができ
  3. 相対パス(../css/styles.css)を使用します。

これを処理する最善の方法は何ですか?

答えて

1

何かがどこに配備されるかについて疑問がある場合は、可能な限り絶対パスを避け、使用する必要がある場合は、$_SERVERスーパーグローバルのデータを使って構築してください。値$_SERVER['PHP_SELF']は、現在実行中のスクリプトへのパスとファイル名が含まれます、そしてあなたは、その後のようなものを使用してパスを抽出することができます。

$path = dirname($_SERVER['PHP_SELF']); 

同様に、値$_SERVER['HTTP_HOST']は、現在のホストが含まれますし、一緒にそれらの2からあなたあなたがどこにいても道を築くことができます。 HTTPSを使用している場合は、プロトコルを$_SERVER['HTTPS']にチェックする必要があります。

このように、可能な限り相対パスと単純なファイルとディレクトリ構造を使用することが最良です。なぜなら、すべてのものを移植性と読みやすさが向上させるからです。あなたの例のように、../css/styles.cssのことをたくさんしているのであれば、物事がどのように構造化されているか再考したいかもしれません。

1

2と3のミックスセット変数に相対的なパスを使用します。

関連する問題