【发布时间】:2013-09-23 22:39:01
【问题描述】:
在我的 Apache 配置中,我首先拒绝访问整个文件系统:
<Directory />
Require all denied
</Directory>
然后,在每个虚拟主机的配置中,我允许不受限制的访问:
<VirtualHost ...>
<Directory /var/www/example.com/>
Require all granted
</Directory>
</VirtualHost>
或需要经过身份验证的访问:
<VirtualHost ...>
<Directory /var/www/example.com/>
AuthType Basic
AuthName "example.com"
AuthUserFile htpasswd
Require valid-user
</Directory>
</VirtualHost>
我在 Apache 文档中注意到:
我想知道使用<Location /> 是否可能是要求对特定虚拟主机进行身份验证访问的一种方式:
<VirtualHost ...>
<Location />
AuthType Basic
AuthName "example.com"
AuthUserFile htpasswd
Require valid-user
</Location>
</VirtualHost>
但 Apache 文档指出:
<Location> directives should not be used to control access to filesystem locations.
这让我想知道 不应该 是否是对 <Location> 指令的一般建议,以及在某些情况下 <Location /> 指令是否可以被用作例外 允许访问,或者换句话说,Apache <Location> 指令可以安全地用于配置对服务器的访问吗?
【问题讨论】:
标签: apache2 basic-authentication http-authentication digest-authentication