我需要在我的测试服务器上创建一个临时的。htaccess文件,以便只有我的公共dhcp ip可以访问我的测试站点。
在我的。htaccess中有三行。
RewriteEngine On
RewriteCond expr "file('%{DOCUMENT_ROOT}/myip') != %{REMOTE_ADDR}"
RewriteRule ^(.*)$ /blackhole2.html [R,L]
第一行读取写在/myip文件中的php脚本文件的输出。如果地址与"remote_addr"不匹配,则转发到适当的网页。即:blackhole2.html
看起来如果ip地址匹配,我可以访问我的测试站点。但是,如果ip地址不匹配,重写规则将出现302个循环错误。
我已经尝试了几个标志分隔符等,但现在已经把我的玩具从我的it抽屉里扔出去了。
我忽略了什么,或者不明白还需要什么。谢谢。
当IP地址不匹配时触发重定向循环,因为重定向到/blackhole2.html
的响应被相同的规则捕获并一次又一次重定向到/blackhole2.html
....
当/blackhole2.html
被请求时,你需要包含一个异常。
例如:
:
RewriteRule !^blackhole2.html$ /blackhole2.html [R,L]
或者直接阻止请求(403 Forbidden)并且不重定向:
:
RewriteRule ^ - [F]
尽管您需要创建一个异常,如果您有一个自定义的403ErrorDocument
。