如何配置 Apache 以仅允许从本地 IP 地址访问?

如何配置 Apache 以仅允许从本地 IP 地址访问?

我有一台 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

相关内容