Matthias: Header Weiterleitung bei mod_rewrite

Hallo folgendes Problem:

in einer .htaccess ist eine modrewrite Regel eingebunden.

RewriteEngine on

RewriteRule ^$ http://myhost:1234/mypage [P]

RewriteRule ^mypage/(.*) http://myhost:1234/mypage/$1 [QSA,P]

Soweit funktioniert das ganze.
Der Apache kann direkt übers Netz aufgerufen werden. Die Applikation / Webserver steht hinter einer Firewall.

Bei der Auswertung der Logfiles des 2. Applikationsservers erscheint jedoch im Log die IP Adresse des Apache Servers und nicht des Requestors.

Wo muss ich nun drehen, dass die HTTP Header weiter geleitet werden?
Oder wird das ggf. durch die Firewall geschluckt?

Viele Güsse Matthias

  1. Könnte diese schon die Lösung sein?

    SetEnvIfNoCase Host Apache.Org Remote_Addr=%{REMOTE_HOST}

    SetEnvIfNoCase Host Apache.Org REMOTE_HOST=%{REMOTE_HOST}

    Viele Grüsse Matthias

  2. Hallo Matthias,

    RewriteRule ^$ http://myhost:1234/mypage [P]
    RewriteRule ^mypage/(.*) http://myhost:1234/mypage/$1 [QSA,P]

    Wenn du das / mit in die Klammer packst und den Slash vor $1 wegmachst, reicht eine Regel.

    Der Apache kann direkt übers Netz aufgerufen werden. Die Applikation / Webserver steht hinter einer Firewall.
    Bei der Auswertung der Logfiles des 2. Applikationsservers erscheint jedoch im Log die IP Adresse des Apache Servers und nicht des Requestors.

    Wie auch, der Client gar nicht auf „myhost“ zugreifen kann. Stattdessen holt der, den du Apache nennst, die Daten vom „myhost“. Das bewirkt (vermute ich, hab nicht nachgeguckt) ja auch das P-Flag.
    Du könntest irgendwie (Aufruf der Resource auf myhost durch ein extra Script, nicht Apache) dafür sorgen, dass du selbst Header für die Anfrage setzen kannst, z.B. X-Original-IP oder so, die kannst du dann auf myhost in den Logs verwenden.

    Viele Grüße aus Freiburg,
    Marian

    --
    Microsoft broke Volkswagen's world record: Volkswagen made only 22 million bugs!
    <!--[if IE]><meta http-equiv="refresh" content="0; URL=http://www.getfirefox.com"><[endif]-->
    1. Du könntest irgendwie (Aufruf der Resource auf myhost durch ein extra Script, nicht Apache) dafür sorgen, dass du selbst Header für die Anfrage setzen kannst, z.B. X-Original-IP oder so, die kannst du dann auf myhost in den Logs verwenden.

      Das heisst, dem Apachen kann man es nicht beibringen, dass er den HTTP Header transparent weiter gibt?

      Gruss Matthias

      1. Hallo Matthias,

        Du könntest irgendwie (Aufruf der Resource auf myhost durch ein extra Script, nicht Apache) dafür sorgen, dass du selbst Header für die Anfrage setzen kannst, z.B. X-Original-IP oder so, die kannst du dann auf myhost in den Logs verwenden.

        Das heisst, dem Apachen kann man es nicht beibringen, dass er den HTTP Header transparent weiter gibt?

        Was meinst du mit „transparent“?
        Die IP-Adresse ist kein HTTP-Header, sondern ein TCP/IP-Header, und den solltest du nicht verändern, dann werden die Daten nämlich nicht mehr an dich geschickt.

        Viele Grüße aus Freiburg,
        Marian

        --
        Microsoft broke Volkswagen's world record: Volkswagen made only 22 million bugs!
        <!--[if IE]><meta http-equiv="refresh" content="0; URL=http://www.getfirefox.com"><[endif]-->