2009-02-15 31 views
3

我想保护一些子域名免受公众侵害。应该对IP白名单进行限制。 由于重定向导致的无限循环不是一个问题,因为它不是www域。重定向除列入白名单的所有IP

我试过这个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] 

..但没有工作。

我在做什么错?

回答

2

你必须在RewriteCond指令和或代替有机结合起来,只要你想,如果这两个条件都为真(为此IP地址既不是X也不Ÿ)重定向。所以,试试这个:

RewriteEngine on 
RewriteCond %{REMOTE_ADDR} !^123\.45\.67\.89$ 
RewriteCond %{REMOTE_ADDR} !^213\.45\.67\.89$ 
RewriteRule^http://www.example.com/ [R] 
+1

如果你想更明确一些和我一样的重定向,(永久301或临时302),然后改成标志像`[R = 302 ]` – Jonathan 2016-02-02 15:57:01

4

这种事情其实正是Apache的AllowDeny指令旨在为。里面的<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 
相关问题