Apache HTTP Server Version 2.5

Dieses Dokument ergänzt die mod_rewrite
Referenzdokumentation. Es beschreibt,
wie man das [P]-Flag der RewriteRule verwendet, um Inhalte an einen anderen
Server weiterzuleiten. Es werden verschiedene Rezepte bereitgestellt, die
gängige Szenarien beschreiben.
mod_rewrite bietet das [P]-Flag, mit dem URLs über
mod_proxy an einen anderen Server weitergeleitet werden
können. Hier werden zwei Beispiele gegeben. In einem Beispiel wird eine
URL direkt an einen anderen Server weitergeleitet und so ausgeliefert,
als wäre sie eine lokale URL. Im anderen Beispiel leiten wir fehlende
Inhalte an einen Backend-Server weiter.
Um eine URL einfach einem anderen Server zuzuordnen, verwenden wir das [P]-Flag wie folgt:
RewriteEngine on RewriteBase "/products/" RewriteRule "^widget/(.*)$" "http://product.example.com/widget/$1" [P] ProxyPassReverse "/products/widget/" "http://product.example.com/widget/"
Im zweiten Beispiel leiten wir die Anfrage nur weiter, wenn wir die Ressource nicht lokal finden können. Dies kann sehr nützlich sein, wenn Sie von einem Server zu einem anderen migrieren und sich nicht sicher sind, ob alle Inhalte bereits migriert wurden.
RewriteCond "%{REQUEST_FILENAME}" !-f
RewriteCond "%{REQUEST_FILENAME}" !-d
RewriteRule "^/(.*)" "http://old.example.com/$1" [P]
ProxyPassReverse "/" "http://old.example.com/"
In jedem Fall fügen wir eine ProxyPassReverse-Direktive hinzu, um
sicherzustellen, dass alle vom Backend ausgegebenen Umleitungen
korrekt an den Client weitergeleitet werden.
Erwägen Sie, wann immer möglich, ProxyPass oder ProxyPassMatch anstelle von
mod_rewrite zu verwenden.