保護されたサブ URL の除外は Apache 2.4 では機能しませんか?

保護されたサブ URL の除外は Apache 2.4 では機能しませんか?

保護された Web サイトからサブ 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設定されたままになっているため、追加する必要がありました。

関連情報