我有一台 Apache 服务器,为几个域(虚拟主机)提供服务。在其中一个域中,我希望虚拟目录只能从本地网络访问:
<VirtualHost *:80>
DocumentRoot "some_dir"
ServerName www.something.com
Alias /restricted "someotherdir_somewherelse"
<Location /restricted>
Order deny,allow
Deny from all
Allow from 192.168.1.*
</Location>
</VirtualHost>
问题是没有人可以访问该目录。它总是被拒绝。
如果我删除否定指令那么本地计算机确实可以访问受限制的位置,但外部也是如此。我对 Apache 文档中有关该指令的内容有点困惑Order
:
否认允许
首先,评估所有 Deny 指令;如果有匹配项,则拒绝该请求除非它还匹配一个 Allow 指令。任何不匹配任何 Allow 或 Deny 指令的请求都会被允许。
似乎一旦否定指令被评估,允许不是。我正在从 192.168.1.60 和 192.168.1.23 进行测试。
Apache 2.2 在 Windows 2008 基础上运行。
答案1
你假设allow from
允许使用星号作为通配符,但事实并非如此记录。而是使用部分地址:
Allow from 192.168.1