보호된 웹사이트에서 하위 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가 일부 리디렉션을 사용하고 이로 인해 env 변수 noauth
세트가 유지되기 때문에 추가해야 했습니다.