보호된 하위 URL 제외가 Apache 2.4에서 작동하지 않습니까?

보호된 하위 URL 제외가 Apache 2.4에서 작동하지 않습니까?

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

관련 정보