Я пытаюсь исключить под-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 control вещиизменилось с 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 использует некоторое перенаправление, и это сохраняет переменную env noauth
установленной