我有以下站点配置
<Location />
AuthUserFile /path/.htpasswd
AuthName "Restricted Area"
AuthType Basic
require valid-user
</Location>
限制对所有位置的访问。现在我想排除media/
<Location /media>
Require all granted
</Location>
以及upload/
另一个目录中的
Alias /upload/files/ /another/path/upload/files/
<Directory "/another/path/upload/files/">
Options None
AllowOverride None
ForceType text/plain
Require all granted
</Directory>
不幸的是,它仍然提示我进行身份验证。
答案1
您可以通过以下方式添加例外情况:
<Directory /media>
Options none
AllowOverride none
Require all granted
</Directory>
应用配置后,必须重新启动 apache 服务。
答案2
由于 Location /media 位于 Location / 之后,因此它继承了根 AuthType。您应该能够否决它:
<Location /media>
AuthType None
Require all granted
</Location>
答案3
我找到了一种方法来实现这一点
<Location />
AuthUserFile /path/.htpasswd
AuthName "Restricted Area"
AuthType Basic
Require expr %{REQUEST_URI} =~ m#^/media#
Require expr %{REQUEST_URI} =~ m#^/upload/files/#
Require valid-user
</Location>
可能还有其他选择。