mod_rewrite: Passwort Server-übergreifend verwenden?
Jörg Peschke
- webserver
0 Dennis
0 Jörg Peschke0 Dennis
Hallo zusammen,
Ich spiele gerade ein bisschen mit mod_rewrite herum, und ich würde gerne Anfragen an ein (mit htpasswd geschützes Verzeichnis) auf Server A auf ein anderes (ebenfalls htpasswd-geschützetes) Verzeichnis auf Server B weiterleiten. Benutzernamen und Passwörter können erstmal auf beiden Webservern gleich angenommen werden.
Mein erster Ansatz (im htaccess-File aus Server A) kommt dem schon sehr nahe:
RewriteEngine On
Options +FollowSymLinks
Options +SymLinksIfOwnerMatch
RewriteRule (.+) "http://mydomain.com/$1" [P,L]
AuthType basic
AuthUserFile /path/to/htpasswd/.htpasswd
AuthName 'Restrictes Access'
order deny,allow
require user someone
Server A fragt mich nach einem Passwort, danach wird der Request brav an den Server B weitergeleitet, die geschützten Dateien werden auch ausgeliefert. Nur irgendwann, beim Nachladen von weiteren Dateien (z.b. von einzelnen Frames in Framesets) fragt mich Server B plötzlich erneut nach eine Passwort.
Was habe ich vergessen?
Danke für die Hilfe,
Jörg
Hi Jörg,
Nur irgendwann, beim Nachladen von weiteren Dateien (z.b. von einzelnen Frames in Framesets) fragt mich Server B plötzlich erneut nach eine Passwort.
Beziehen sich die Adressen im HTML Quellcode auch alle auf Server A? Du verwendest ja die Proxy Option (P), der Browser bleibt also bei der URL des Servers A, folglich sollten relative Adressen auch auf Server A bezogen sein - sind die URI's vielleicht irgendwo absolut auf Server B angegeben?
MfG, Dennis.
Hallo,
Beziehen sich die Adressen im HTML Quellcode auch alle auf Server A? Du verwendest ja die Proxy Option (P), der Browser bleibt also bei der URL des Servers A, folglich sollten relative Adressen auch auf Server A bezogen sein - sind die URI's vielleicht irgendwo absolut auf Server B angegeben?
Ich dachte zuerst, dass es daran läge, und habe deswegen absolute Adressierungen rausgeschmissen. In dert tat kommt er dann ein bisschen weiter, aber leider nicht weit genug -> spätestens bei einem Perl-Skript, was er als CGI ausführen soll, kommt ein "Forbidden".
Hallo,
Wie ich inzwischen herausgefunden habe, liegt es daran, dass mein Apache keine Perl-Skripte ausführen darf, die in dem Verzeichnis liegen, von dem aus weitergeleitet werden soll.
Lustigerweise geht das wunderbar, sobald ich die RewriteEngine abschalte ("RewriteEngine Off").
Ist die RewriteEngine On, kommt IMMER ein "Forbidden", wenn ich versuche, Perl-Skripte in dem Verzeichnis auszuführen, selbst wenn ich keine Weiterleitung über RewriteRule definiert habe.
Seltsam, seltsam...
Hi Jörg,
Wie ich inzwischen herausgefunden habe, liegt es daran, dass mein Apache keine Perl-Skripte ausführen darf, die in dem Verzeichnis liegen, von dem aus weitergeleitet werden soll.
Lustigerweise geht das wunderbar, sobald ich die RewriteEngine abschalte ("RewriteEngine Off").
Ist die RewriteEngine On, kommt IMMER ein "Forbidden", wenn ich versuche, Perl-Skripte in dem Verzeichnis auszuführen, selbst wenn ich keine Weiterleitung über RewriteRule definiert habe.
Verstehe ich dich richtig? /foo/bar ist ein Verzeichnis im Document Root - solange für dieses Verzeichnis keine RewriteRules definiert sind, laufen Perl Scripte prima, sobalds aber ne RewriteRule gibt gehts nicht mehr?
Seltsam, seltsam...
In der Tat.
MfG, Dennis.