动态IP .htaccess阻止列表?

时间:2010-07-02 12:55:20

标签: apache ip blacklist

是否可以使用基于动态文件的阻止列表阻止用户访问IP地址?

所以,假设.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处理它。

2 个答案:

答案 0 :(得分:6)

根据Apache docs,似乎无法从文本文件中读取值。

但是,您可以include包含IP地址的配置文件。但是,它们必须采用Apache的conf文件格式。

这应该有效:

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

甚至可以include整个目录,即使不建议这样做。

答案 1 :(得分:4)

我使用Apache的RewriteModule中的RewriteMap功能作为白名单,如下所示:

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

通过一些调整,你可以把它变成黑名单。