fragen stichworte

Weiterleiten der ursprünglichen URI innerhalb von mod_rewrite

Ich versuche, mod_rewrite zu verwenden und irgendwie - vorzugsweise über einen Header - den ursprünglichen URI an meinen Anwendungsserver weiterzuleiten.

Ich möchte weiter daran denken, wie ich die gesendeten Informationen vom Client mitnehmen kann, nachdem sie der Weiterleitung an den Anwendungsserver gefolgt sind.

Die einzige Methode, die ich gefunden habe, besteht darin, eine Abrufanforderung mit der ursprünglichen URI zu übergeben, aber das scheint hässlich zu sein.

Hinweis - Ich habe bereits die -Untersuchung überprüft, URLs umgeleitet oder HTTP zu HTTPS in Apache umgeleitet - Alles, was Sie schon immer über Mod_Rewrite-Regeln wissen wollten, aber Angst hatten, und Crazy Advanced Mod_Rewrite Debug Tutorial

Es ist möglich, dass ich etwas übersehen habe. Wenn ja, bitte geben Sie mir den richtigen Begriff und schließen Sie es als Duplikat. :)

BEARBEITEN:

mod_rewrite verwendet eine 302-Weiterleitung zum Anwendungsserver. Die eigentliche Weiterleitung ist clientseitig. Einige der Domains stimmen überein, andere nicht. Die Grundsyntax meiner Regeln sieht wie folgt aus.

RewriteCond %{HTTP_HOST} mydomain|myalias
RewriteRule ^ http://www.mydomain.org... [R=301,L]

antworten

Speichern Sie den URI zu Beginn Ihrer Umschreibungsregeln in eine Variable. Ich werde es ORIGINAL_URI nennen.

RewriteRule (.*) - [E=ORIGINAL_URI:$1]

Gibt Apache diese Anfrage direkt an den Anwendungsserver weiter? Ist dies der Fall, legen Sie eine benutzerdefinierte -Header, die ich Original-URI nennen möchte, auf den Wert dieser Variablen fest.

RequestHeader set "Original-URI" "%{ORIGINAL_URI}e"

Sendet Apache eine Weiterleitung zurück zum Client, der dann eine neue Anfrage ausgibt? Solange die Domain gleich bleibt, können Sie dem Client einen Cookie zuweisen.

Header set Set-Cookie "Original-URI=%{ORIGINAL_URI}e"