apache basic authentication, bevor umschreiben
Ich habe einen apache frontend, das umleiten einer Anfrage über eine rewrite-Regel.
Ich muss eine basic-Authentifizierung vor dem umleiten einer Anfrage, so dass ich diese in der config-Datei:
<VirtualHost *:443>
ServerAdmin xxxxxx
DocumentRoot /var/www/html/
ServerName xxxxxxx
RewriteEngine on
ErrorLog logs/error.log
CustomLog logs/access_log common
<Directory /var/www/html/>
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/httpd/conf/tag.pwd
Require valid-user
RewriteRule ^/(.*) http://xxxxxx:xxx/$1 [P,L]
</Directory>
</VirtualHost>
Aber nicht funktioniert.
Irgendwelche Vorschläge?
- Was hast du erwartet? Was ist da eigentlich passiert? Was haben Sie getan, um es geschehen zu lassen? Was habt Ihr sonst noch versuchen?
- Ich würde erwarten, dass alle Anfragen nach der Authentifizierung umgeleitet werden, mit der Regel RewriteRule ^/(.*) xxxxxx:xxx/$1 [P,L] dies ist aber nicht geschehen, der Apache-Suche die Seite unter /var/www/html
Du musst angemeldet sein, um einen Kommentar abzugeben.
Im Allgemeinen, führt der Apache die rewrite-phase vor der Autorisierungs-phase, die ist, warum Ihr code wird das umschreiben, ohne jemals zu Fragen für den Benutzer zu authentifizieren.
Können Sie bekommen, um dieses mit der
LA-U:REMOTE_USER
variable. Vorwort Ihr RewriteRule mit einem Zustand, der sieht vor ("LA") für die Autorisierung phase:Siehe Erläuterungen dazu in http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritecond
Als andere Poster darauf hin, es ist auch besser, die RewriteRule-Direktiven aus dem block, so dass Sie zuverlässiger sind.
Ich gelöst setzen die rewrite-Bedingung und rewrite-Regel, die außerhalb des Standor-Richtlinie:
vielen Dank h0tw1r3 für die Anregung
*Beachten Sie, dass Location-Direktiven die auf URLs arbeiten, und nicht Verzeichnisse. Das bedeutet, dass, wenn jemand erstellt einen alias der document root, Sie werden komplett umgehen diese Authentifizierung Regeln. (Siehe http://httpd.apache.org/docs/2.0/mod/core.html#location für mehr.)
Update: Implizite Verzeichnis-Regel sichert die Validierung ist immer notwendig, bevor die rewrite gemacht wird. Festgestellt, dass verschiedene Kombinationen von apache-Modulen verändert sich das Verhalten, also die akzeptierte Antwort kann nicht immer funktionieren.