Jörg Peschke: mod_rewrite: Passwort Server-übergreifend verwenden?

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

  1. 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.

    --
    Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
    Crypt::PasswdMD5 jetzt auch in PHP
    Dies hier ist ein öffentliches Forum - wer dir hier geholfen hat, hat dies vollkommen freiwillig und unter Aufopferung seiner Freizeit getan!
    1. 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".

  2. 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...

    1. 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.

      --
      Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
      Crypt::PasswdMD5 jetzt auch in PHP
      Lesen Sie schnell, denn nichts ist beständiger als der Wandel im Internet! (Anita Berres)