Apache 拒绝 <Location> 但允许子位置

问题描述 投票:0回答:3

我使用 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>

第二条规则似乎有效,但覆盖了第一条规则。

有人知道我做错了什么或建议如何做吗?

谢谢

apache mod-authz-host
3个回答
4
投票

<Location>
指令按照它们在配置文件中出现的顺序进行处理,因此您的第二条规则优先。只需更改 .conf 文件中规则的顺序即可。


2
投票

看起来我已经成功了。 我按照杜桑的建议移动了规则的顺序,但仍然不起作用。 但是,删除

不允许覆盖无
订单允许、拒绝

从规则来看似乎已经修复了它。

所以现在我有以下工作:

<Location "/location/">  
 AllowOverride None  
 Order Deny, Allow  
 Deny from All  
 Allow from 10.10.10.10   
</Location>

<Location "/location/sub">  
    Allow from All  
</Location>

0
投票

很小的事情,但我在 Centos 上运行 Apache 2.4.34,并且订单行中的 Deny 和 Allow 之间的空格是错误的。要工作,它应该没有空间,实际上应该是:

订单拒绝,允许

© www.soinside.com 2019 - 2024. All rights reserved.