使用文件存在或不存在,在Apache中有条件地将IP列入白名单

时间:2016-04-12 16:14:58

标签: apache whitelist rewritemap

我找到了一个很好的解决方案来解决这个问题,但它缺少一个我需要的组件。这很接近:

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

大多数时候我想限制对网站的访问,但有时我会希望许多(测试版测试人员)有权访问。此时,让测试期间任何人访问该站点最简单。所以我真正想做的是使白名单有条件地应用。如果存在whitelist.txt文件,则限制访问。但如果没有文件,那么让任何人访问该网站。或者,找一些其他方法。

我搜索过类似的东西,但我上面的内容尽可能接近。我可以在whitelist.txt中使用*.*.*.*以便在需要时允许所有IP吗?或者是否有更好的方法来“打开和关闭”IP限制逻辑?

1 个答案:

答案 0 :(得分:0)

您是否考虑过使用标志文件作为条件而不是ip地址文件?

类似的东西:

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