我使用 Apache2.2 作为 tomcat 服务器的前端。 我想限制对某个位置的访问,但允许对子位置的所有访问,但遇到了一些麻烦。
我目前拥有的是:
<Location "/location/sub">
AllowOverride None
Order Allow,deny
Allow from All
</Location>
<Location "/location/">
AllowOverride None
Order Deny, Allow
Deny from All
Allow from 10.10.10.10
</Location>
第二条规则似乎有效,但覆盖了第一条规则。
有人知道我做错了什么或建议如何做吗?
谢谢
<Location>
指令按照它们在配置文件中出现的顺序进行处理,因此您的第二条规则优先。只需更改 .conf 文件中规则的顺序即可。
看起来我已经成功了。 我按照杜桑的建议移动了规则的顺序,但仍然不起作用。 但是,删除
不允许覆盖无
订单允许、拒绝
从规则来看似乎已经修复了它。
所以现在我有以下工作:
<Location "/location/">
AllowOverride None
Order Deny, Allow
Deny from All
Allow from 10.10.10.10
</Location>
<Location "/location/sub">
Allow from All
</Location>
很小的事情,但我在 Centos 上运行 Apache 2.4.34,并且订单行中的 Deny 和 Allow 之间的空格是错误的。要工作,它应该没有空间,实际上应该是:
订单拒绝,允许