Der Ausschluss einer geschützten Sub-URL funktioniert unter Apache 2.4 nicht?

Der Ausschluss einer geschützten Sub-URL funktioniert unter Apache 2.4 nicht?

Ich versuche, eine Sub-URL „/shop/api“ von meiner geschützten Website auszuschließen. Auf einem anderen Server mit Apache/2.2.15 hat das problemlos funktioniert, aber jetzt nicht mit Apache/2.4.7? Es wird immer nach der Basisauthentifizierung gefragt. Irgendeine Idee, was ich falsch gemacht habe?

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

Antwort1

wie "lain" anmerkte, das Apache 2.4 Auth/Access Control Zeughat sich seit 2.2 geändert. Also musste ich es wie folgt ändern:

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>

Außerdem musste ich hinzufügen, Require env REDIRECT_noauthdass PHP eine Weiterleitung verwendet und dadurch die Umgebungsvariable noauthgesetzt bleibt

verwandte Informationen