2012-03-24 25 views
1

Ich benutze eine neu verpackte Version Apache, die IHS (IBM HTTP Server) genannt wird. Basical das gleiche wie Apache Web dienen mit anderen Funktionen. Was ich versuche zu erreichen, ist, die Rewrite-Regel anzuwenden, um die komplizierte URL mit Abfragestrings mit einer verkürzten URL auszublenden.Apache URL Neuschreiben funktioniert nicht, aber Redirect funktioniert, warum?

Ursprünglich, als ich das zuerst mit "R" Flag getestet habe, funktioniert es gut. Es war in der Lage, das Muster und die Antwort mit der richtigen langen URL durch Redirecdt an die endgültige URL anzupassen.

zB: https://example.com/us/ABC/123 ->https://example.com/webapp/ headertext = ABC & categoryId = 123

Aber nachdem ich entfernte die 'R' Flag haben, meine Rewrite mit der Meldung von "Datei fehlgeschlagen existiert nicht:/opt/IBM/Http/htdocs/dmcst/webapp ". Ich versuche, die verkürzte URL anzuzeigen, ohne dem Benutzer die vollständige URL zu geben. Das/webapp/.. ist kein lokaler Pfad, sondern ein anderer entfernter Pfad. Warum würde das nicht für "Neuschreiben", nicht für "Weiterleiten" funktionieren?


RewriteEngine auf Alias ​​/ wcsstore "/opt/IBM/WebSphere/AppServer/profiles/dmcwcsst/installedApps/WC_dmcwcsst_cell/WC_dmcwcsst.ear/Stores.war" Alias ​​/ WKS „/ opt/IBM/WebSphere /AppServer/profiles/dmcwcsst/installedApps/WC_dmcwcsst_cell/WC_dmcwcsst.ear/CommerceAccelerator.war“ Alias ​​/ statisch "/ opt/IBM/content"

RewriteRule ^/us/([az]. )/([ 0-9].) /? $/Webapp/wcs/speicher/servlet/AcquisitionBrowseView? LangId = -1 & storeId = 10001 & catalogId = 10051 & headertext = $ 1 & categoryId = $ 2 [NC, R, L]

Antwort

0

Von der WebSphere-Dokumentation:

http://publib.boulder.ibm.com/infocenter/wasinfo/v8r0/index.jsp?topic=%2Fcom.ibm.websphere.nd.multiplatform.doc%2Finfo%2Fae%2Fae%2Fujpx_rewrite.html

Umschreiben von Regeln definieren, wie der Proxy-Server-URLs umschreibt. Antworten , die von Zielservern umgeleitet wurden, geben in der Regel einen 302 Statuscode mit einem Standortkopf zurück, der die URL definiert, an die der -Client weitergeleitet werden soll. Das Umschreiben dieser URL ist erforderlich, wenn der Zielserver die Proxyserver nicht kennt. Die umgeleitete URL wird geändert, um Clients auf dem Proxyserver statt korrekt direkt auf einem Zielserver zu verweisen, der für Clients nicht sichtbar sein kann. Verwenden Sie die folgenden Eigenschaften, um die URL-Rewriting Regeln für einen Proxy-Server

Vermeiden Sie Probleme zu konfigurieren: Der Proxy-Server nur umgeleitet unterstützt Umschreiben Antworten. Daher gelten diese folgenden Einstellungen nur für umgeleitete Antworten auf . Diese Einstellungen gelten nicht für Anforderungen, da der Proxy-Server das Umschreiben von URLs für Anforderungen nicht unterstützt.

+0

half Wenn ich das richtig gelesen, wird das war die ‚RewriteRule‘ nicht unterstützen den gezielten URLs transparent nach vorne, aber insteads nutzt es umleiten 301/302 '? Das kann nicht stimmen ...! In einem normalen Szenario mit Apache httpd, sollte ich in der Lage sein ** umleiten ** eine ** umschreibende ** austauschbare Basis auf meinem Wunsch nach Redirect (301/302) oder Neuschreiben (versteckte Backend Anfrage/Redirect), wenn einer funktioniert, der andere sollte auch funktionieren, stimmst du zu? @paulsm4 – Fang

0

hatte ich das gleiche Problem

Es sieht aus wie WAS-Plug-in in nicht freundlich mit mod_rewrite

Moduldeklaration (LoadModule- was_ap22_module ...) So war zum Boden des httpd verschoben wurde.conf

In meinem Fall ist es

Verwandte Themen