动态IP .htaccess阻止列表?

wsp*_*ijt 11 apache ip blacklist

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

所以,假设.htaccess看起来像:

order Deny,Allow
Deny from 123.156.0.1
Deny from 10.0.0.10
Allow from all
Run Code Online (Sandbox Code Playgroud)

此列表是否可以动态化,例如:

order Deny,Allow
[include Deny list here]
Allow from all
Run Code Online (Sandbox Code Playgroud)

另一种选择当然是用PHP修复它,但最好让Apache处理它.

Uni*_*ron 7

根据Apache文档,似乎不可能从文本文件中读取值.

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

这应该工作:

order Deny,Allow
include conf/IPList.conf
Allow from all
Run Code Online (Sandbox Code Playgroud)

它甚至可以用于include整个目录,即使它不是推荐的.

  • 您没有包含应该在`conf/IPList.conf` 中的数据样本格式,因为这也是您答案的强制性部分。 (3认同)

小智 5

我使用来自Apache RewriteModule 的RewriteMap功能,像这样的白名单:

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

通过一些调整,您可以将其列入黑名单。