我想保护一些子域名不受公众侵害。应该针对IP白名单进行限制。 由于重定向导致的无限循环不是问题,因为它不是www域。
我试过这个http://discussions.apple.com/message.jspa?messageID=2411725,但无法让它发挥作用。
但是我确实尝试了第一次
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^123\.45\.67\.89$ [OR]
RewriteCond %{REMOTE_ADDR} !^213\.45\.67\.89$
RewriteRule ^/.* http://www.mydomain.com [R]
..但没有工作。
我做错了什么?
答案 0 :(得分:5)
这类事实上正是Apache的Allow
和Deny
指令所针对的。在您要限制访问的域的<VirtualHost>
块内,请输入:
<Location />
Order allow,deny
Allow from all
Deny from 123.45.67.89
Deny from 213.45.67.89
</Location>
但是,这会产生403(禁止)错误,默认情况下不会重定向到您的www
域。我想你可以通过添加指令
ErrorDocument 403 http://www.example.com
答案 1 :(得分:3)
如果两个条件都为真,则必须将RewriteCond
指令与AND组合而不是OR,因为IP地址既不是 X 也不是 Y < / em>的)。所以试试这个:
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^123\.45\.67\.89$
RewriteCond %{REMOTE_ADDR} !^213\.45\.67\.89$
RewriteRule ^ http://www.example.com/ [R]