2010-07-02 84 views
10

是否有可能通過基於動態文件的阻止列表阻止IP地址的用戶?動態IP .htaccess阻止列表?

所以,假設的.htaccess的樣子:

order Deny,Allow 
Deny from 123.156.0.1 
Deny from 10.0.0.10 
Allow from all 

可以此列表中進行動態的,例如:

order Deny,Allow 
[include Deny list here] 
Allow from all 

當然,另一種選擇是用PHP修復它,但最好讓Apache處理這個問題。

回答

6

根據Apache docs,似乎不可能從文本文件讀取值。

但是,您可以在include的配置文件中包含IP地址。不過,它們必須採用Apache的conf文件格式。

這應該工作:

order Deny,Allow 
include conf/IPList.conf 
Allow from all 

它甚至可能include整個目錄,即使它不推薦使用。

4

我使用RewriteMap功能從Apache的RewriteModule,因爲像這樣的白名單:

## WHITELIST IPS ## 
RewriteMap ipslist txt:/path/to/whitelist.txt 
RewriteCond %{REMOTE_ADDR} ^(.*)$ 
RewriteCond ${ipslist:%1|black} ^black$ [NC] 
RewriteRule (.*) - [F] 

有了一些調整,你可以把這個黑名單。

+0

RewriteMap是一個不錯的方法,但只會在服務器或虛擬主機上下文中工作,即不是.htaccess – Jason 2012-08-09 16:18:16