2017-10-01 6 views
1

Ich habe folgende config in meiner .htaccess-Datei, die in Apache 2.2, aber nicht in 2.4 funktioniert:Erfordern gültigen Apache 2.2 bis 2.4

SetEnvIf Request_URI ^/admin require_auth=true 

AuthUserFile /var/www/site.htpasswd 
AuthName "Admin Access" 
AuthType Basic 

Require all denied 
Satisfy any 
Require valid-user 
Allow from env=!require_auth 

Wie konvertiere ich die 2.4 in Apache zu arbeiten? Wenn der URI mit/admin startet, sollte er im Prinzip nach dem Passwort gefragt werden.

Danke!

Antwort

1

Einfach diese .htaccess im Ordner, den Sie schützen möchten:

AuthUserFile /var/www/site/.htpasswd 
AuthName "Admin Access" 
AuthType Basic 
require valid-user 

Von https://httpd.apache.org/docs/2.4/howto/auth.html

Zum Beispiel, wenn Sie möchten, das Verzeichnis/usr/local/apache schützen/htdocs/secret können Sie die folgenden Direktiven verwenden, entweder in der Datei /usr/local/apache/htdocs/secret/.htaccess oder in httpd.conf innerhalb eines Abschnitts.

Aber mit der neuen If-Richtlinie könnten wir es auch aus dem Wurzelverzeichnis machen.

<If "'%{REQUEST_URI}' =~ m#/?admin(/.*)?#"> 
    AuthUserFile /var/www/site/.htpasswd 
    AuthName "Admin Access" 
    AuthType Basic 
    require valid-user 
</If> 

testete ich diese positive auf einem Ubuntu 16.04.03 LTS Server mit Apache 2.4.27

+0

Das bin ich es nicht zulässt, dass nach meiner aktuellen Konfiguration auf die URL anwenden basiert. –

+0

Verwenden Sie dann einfach die oben hinzugefügte If-Richtlinie – Webdesigner

Verwandte Themen