1

私の開発環境は、単一のホストを使用するようにセットアップされています ( localhost)。私は自分のマシンで複数の Web サイトを開発しており、それぞれが次のような独自のディレクトリに保存されています。

     /var/www/site1
     /var/www/site2
     ...

私のマシンでは、ドキュメント ルートが に設定さ/var/wwwれています。

私はこれらの Web サイトのほとんどで URL 書き換えを使用しており、ほとんどの.htaccessファイルはサブディレクトリを次のようなさまざまな方法でGETパラメータに書き換えます。

http://localhost/site1/home/red -> http://localhost/site1/index.php?page=home&p1=red
http://localhost/site2/index/param1/param2/param3 -> http://localhost/site2/index.php?page=index&p1=param1&p2=param2&p3=param3

.htaccessまた、これらの Web サイトのいくつかを別のディレクトリにコピーする傾向があります。その場合、コピーする Web サイトのファイルに多くの変更を加える必要があります。

Web サイトのルート ディレクトリ (ホストのドキュメント ルートではなく) を含む定数を定義する方法があるかどうか、またコードの 1 行だけを変更する必要があるように書き換えルールでそれを使用する方法があるかどうかを知りたいです ( Web サイトをコピーするときに、この定数を別の値に設定します)。

これを別の形にすると、ホスト / の代わりにウェブサイトのルートに関連する書き換えを実行する方法はありますか%{HTTP_HOST}(つまり、ウェブサイトの「ホスト」はlocalhost/site1ではなくlocalhost)、どうすればこれを行うことができますか?

スクリプトの先頭で各リクエストからホストを削除し、スクリプトの最後にホストを追加しようとしましたが、これは[L]オプションを使用する書き換えルールでは機能しません。

ありがとうございました!

よろしく、 ルシアン

4

1 に答える 1

1

次のようなルールで htaccess ファイルを作成できます。

RewriteEngine On
RewriteBase /site1/
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+) index.php?page=$1&p1=$2&p2=$3&p4=$4 [L,QSA]

これを directory/var/www/site1に置き、site2 に適用する場合は、 を変更してRewriteBaseにルールを入れます/var/www/site2

于 2012-09-04T05:04:59.380 に答える