在我的 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 文档中注意到:
对于文件系统中的内容,请使用 <Directory> 和 <Files>。<Location /> 是一个例外,这是一种将配置应用于整个服务器的简单方法。
我想知道 using 是否<Location />
可能是一种要求对特定虚拟主机进行身份验证访问的方法:
<VirtualHost ...>
<Location />
AuthType Basic
AuthName "example.com"
AuthUserFile htpasswd
Require valid-user
</Location>
</VirtualHost>
但是 Apache 文档指出:
这让我想知道是否不应该是一般指令的建议<Location>
,以及在某些情况下,特定的<Location />
指令是否可以用作允许访问的例外,或者换句话说,Apache<Location>
指令是否可以安全地用于配置访问到服务器?