dedlfix: Apache: Unterschied RewriteRule zu ProxyPass

Beitrag lesen

Hi!

  1. Unterschied RewriteRule zu ProxyPass

Versuchst du zu raten oder hast du nachgelesen, wofür die beiden Direktiven vorgesehen sind?

Ich bekomme teilweise mit beiden Techniken ein Rewrite hin, verstehe aber nicht genau wo der Unterschied liegt (suche schon seit Stunden):

mod_rewrite nimmt man üblicherweise, um statt der angeforderten Ressource etwas anderes auszuliefern oder auch, um den Request auf eine bestimmte Ressource zu leiten. Es ist auch möglich, auf externe Ressourcen zu verweisen, dann ist das Ergebnis aber ein Location-Header (ein Redirect) an den Client und dieser fordert dann in einem neuen Request die Ressource an.

Weg 1: ProxyPass
In httpd.conf (alle Rewrite-Module) aktiviert und auf eine weitere Datei verwiesen:
Include "conf/extra/httpd-proxy.conf"

Schau in die Apache-Dokumentation, da gibt es eine Auflistung aller Direktiven. Wenn du die Dokumentation zu ProxyPass gefunden hast, scroll nach oben und dann siehst du ... mod_proxy - also nix mit mod_rewrite.

Und was ist ein Proxy? Ein Stellvertreter. Er führt für dich den Request aus. Du leitest damit also alls Requests durch deinen Webserver.

Frage: Wo ist genau der Unterschied dieser beiden Techniken?
Vor/Nachteile ?

Ich beschreibe nur Eigenschaften. Ob es vor- oder nachteilig ist, kann man nur bewerten, wenn man die Aufgabenstellung genau kennt und inwieweit bestimmte Eigenschaften sich als problematisch herausstellen oder auch nicht.

Ein Location-Header ist einige Bytes lang. Der nächste Request geht nicht mehr über deinen Apachen. Beim Proxy geht aller Verkehr durch selbigen. Da er derjenige ist, der die Requests stellt, kommen diese beim Ziel immer von der selben Quelle und nicht von vielen verschiedenen Clients, die nach einem Redirect selbst das Ziel befragen.

  1. RewrileRule bewirkt redirect

Siehste, da hast du ja doch schon einen Unterschied festgestellt.

Beim Testen fällt mir auf, dass [...] in der URL direkt die umgelenkte Seite angezeigt wird, [...]
Lässt es sich konfigurieren, dass tatsächlich nur die Alias-Seite angezeigt wird ?

Ja, wenn du den Request ausführst und dem Client nur das Ergebnis durchreichst.

Du kannst auch anhand der HTTP-Header im Browser sehen, was aus seiner Sicht pssiert. Dazu kannst du jene Tools verwenden.

Lo!