2009-02-15 30 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 
相關問題