我尝试从受保护的网站中排除子 URL“/shop/api”。它在 Apache/2.2.15 上的不同服务器上运行良好,但现在在 Apache/2.4.7 上却不行?它总是要求进行基本身份验证。知道我做错了什么吗?
AuthType Basic
AuthName 'Authentication required'
AuthUserFile /var/www/vhosts/pwd/.htpasswd
# Allow access to excluded diretories
SetEnvIf Request_URI ^/shop/api/ noauth=1
Order deny,allow
Satisfy any
Deny from all
Require valid-user
Allow from env=noauth
答案1
正如“lain”指出的 apache 2.4 Auth/Access 控制内容自 2.2 版以来已发生改变。所以我需要修改如下:
AuthType Basic
AuthName 'Authentication required'
AuthUserFile /var/www/vhosts/pwd/.htpasswd
# Allow access to excluded directories
SetEnvIf Request_URI /shop/api noauth=1
<RequireAny>
Require env noauth
Require env REDIRECT_noauth
Require valid-user
</RequireAny>
此外,我必须补充一点,Require env REDIRECT_noauth
因为 PHP 正在使用一些重定向,这会保持环境变量的noauth
设置