我想保护一些子域名不受公众侵害.应该针对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]
Run Code Online (Sandbox Code Playgroud)
..但没有工作.
我究竟做错了什么 ?
这种事实上正是Apache Allow和Deny指令的目的.在<VirtualHost>您要限制访问的域的块内,放置:
<Location />
Order allow,deny
Allow from all
Deny from 123.45.67.89
Deny from 213.45.67.89
</Location>
Run Code Online (Sandbox Code Playgroud)
但是,这会产生403(禁止)错误,www默认情况下不会重定向到您的域.我想你可以通过添加指令来实现
ErrorDocument 403 http://www.example.com
Run Code Online (Sandbox Code Playgroud)
您必须使用RewriteCondAND 而不是 OR 来组合指令,因为如果两个条件都为 true,则您想要重定向(因此 IP 地址既不是X也不是Y)。所以试试这个:
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^123\.45\.67\.89$
RewriteCond %{REMOTE_ADDR} !^213\.45\.67\.89$
RewriteRule ^ http://www.example.com/ [R]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4852 次 |
| 最近记录: |