6

1 つの .htaccess ファイルのみを使用して、異なる IP アドレスに異なる書き換えルールを適用することは可能ですか?

私はこれらのルールを持っています:

RewriteEngine on
#RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.123
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

#RewriteRule ^(.*)$ /version/1.0/index.php?r=$1 [L]
RewriteRule ^(.*)$ /version/2.0/index.php?r=$1 [L]

最後の 2 つのルールはどちらも正常に機能し、どちらを有効にするかを選択できます。開発バージョンで作業するために自分自身で1つのルールを有効にし、本番環境で他のルールを有効にしたいと考えています。

そのために何とかIPアドレスフィルタリングを使用できますか? それは可能ですか?2 つのルール (1 つは開発用、もう 1 つは本番用) の両方を有効にできるようにするための代替ソリューションはありますか?

4

2 に答える 2

3

試す:

RewriteEngine on

RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.123
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /version/1.0/index.php?r=$1 [L]

RewriteCond %{REMOTE_ADDR} ^123\.456\.789\.123
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /version/2.0/index.php?r=$1 [L]

書き換え条件を複製する必要があります。の各セットは 、直後RewriteCondの にのみ適用されます。したがって、最初のルールは、IP アドレスから Web サーバーにアクセスしていないすべてのユーザーに適用されます: 123.456.789.123RewriteRule

于 2013-10-15T20:41:41.240 に答える
0

You can also use this:

Options All -Indexes
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.123
RewriteRule ^(.*)$ /version/1.0/index.php?r=$1 [L,QSA]

RewriteCond %{REMOTE_ADDR} ^123\.456\.789\.123
RewriteRule ^(.*)$ /version/2.0/index.php?r=$1 [L,QSA]
于 2013-10-15T21:01:29.627 に答える