是否可以使用基于动态文件的阻止列表阻止用户访问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处理它。
答案 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]
通过一些调整,你可以把它变成黑名单。