htaccess:不同ip地址的不同重写规则

gra*_*vic 6 php apache .htaccess mod-rewrite

是否可以仅使用一个.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]
Run Code Online (Sandbox Code Playgroud)

最后两个规则都可以正常工作,我可以选择启用哪个规则.我想以某种方式为自己启用一个规则来处理开发版本和其他生产规则.

我能以某种方式使用IP地址过滤吗?这甚至可能吗?有没有其他替代解决方案,所以我可以启用两个规则,一个用于我的开发,另一个用于生产?

Jon*_*Lin 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]
Run Code Online (Sandbox Code Playgroud)

您需要复制重写条件。RewriteCond每组仅适用于紧随其后的RewriteRule一组 。因此,第一条规则将应用于所有未从 IP 地址访问网络服务器的人:123.456.789.123