我使用以下语法来阻止我的.htaccess文件中的一些IP:
DirectoryIndex index.php
order allow,deny
deny from 17.18.19.0
deny from 18.17.19.1
allow from all
现在我不确定我是否可以使用它:
DirectoryIndex index.php
order allow,deny
deny from 18.17.19.1
allow from all
deny from 18.15.19.1
allow from all
deny from 18.18.19.1
allow from all
我可以重复这个结构吗?
deny from x.x.x.x
allow from all
为什么我要问?因为我发现php脚本只是在文件末尾附加deny而我不确定我是否需要"允许所有人#34;线。
可以这样吗?
DirectoryIndex index.php
order allow,deny
allow from all
deny from 17.18.19.0
deny from 18.17.19.1
deny from ... etc.
答案 0 :(得分:2)
首先,this documentation page可以很好地解释事情。
以下引用来自mod_authz_host's documentation
Order指令,以及Allow和Deny指令, 控制三通门禁系统。第一次通过过程 或者所有允许或所有拒绝指令,由订单指定 指示。第二遍解析其余的指令(Deny或 允许)。第三遍适用于所有不匹配的请求 前两者中的任何一个。
请注意,处理所有Allow和Deny指令,与a不同 典型的防火墙,只使用第一个匹配。最后一场比赛 是有效的(也不像典型的防火墙)。另外,订单 其中的行出现在配置文件中并不重要 - all允许行作为一个组处理,所有拒绝行都是 被视为另一个,默认状态是自己考虑的。
换句话说,如果你有Order Allow,Deny
,它将首先处理所有Allow
指令,然后处理所有Deny
指令。您可能会发现,如果您有1个Allow from all
或100个Allow from all
指令,则无关紧要。最终结果是相同的,但是有100个指令,您的服务器将需要更多的时间处理。然后,它将处理所有拒绝指令并覆盖您刚才提供的权限。
因此,您只需要一个Order Allow,Deny
指令和一个Allow from all
指令。无论你使用什么脚本,都可以按照它认为合适的方式添加Deny
指令,并且所有指令都可以正常工作。