2016-08-05 25 views
0

Ich habe meine Anwendung auf Websphere-Anwendungsserver bereitgestellt und mein Anwendungsserver und Webserver kommuniziert miteinander.Webserver httpd.conf Datei rewriterules funktioniert nicht

Ich habe eine Anwendung mit/toms Kontextwurzel und andere Anwendung mit/tomsmt Kontextstamm bereitgestellt. Jetzt habe ich meine Rewrite-Regel in httpd.conf geändert, um beide Programme auszuführen. Aber die Anwendung läuft auf dem Kontextstamm von/toms, aber wenn ich die von/tomsmt context root bereitgestellte Anwendung ausführe, erhalte ich einen Fehler.

Kann jemand bitte helfen.

Meine Rewrite-Regel ist wie folgt

RewriteRule ^/(Toms | tomsmt) $ (Toms | tomsmt) /backend/index.cfm [R]

jetzt URL/Toms/backend/index. cfm funktioniert aber URL/tomsmt/backend/index.cfm funktioniert nicht

Antwort

0

Was auch immer Sie haben, um Ihr Backend zu erreichen, was Sie nicht spezifizieren und könnte dies beeinflussen.

Sie müssen den Wert in Klammern erfasst referenzierten nicht versuchen, es in einem der Ziel-URL

Wie zu erfassen:

RewriteRule ^/(toms |tomsmt)$ /$1/backend/index.cfm [R] 

$ 1 Referenzen der erfassten Gruppe: (Toms OR tomsmt) und wird Verwenden Sie den Wert, der vom Client angefordert wurde, und verwenden Sie ihn, um die Umleitung vorzunehmen.

Es gibt eine andere Art und Weise, mit RedirectMatch:

RedirectMatch ^/(toms |tomsmt)$ /$1/backend/index.cfm 


Randnoten: In Ihrem RewriteRule Sie nicht die Flagge L verwenden, das Umschreiben betrachten wird nicht aufhören, wenn es weiter RewriteRules sind unten Beruhigen Sie sich vor Neuschreiben.

Wie im obigen Beispiel bevorzuge ich die Verwendung von mod_alias Redirect/RedirectMatch für einfache externe Umleitungen, sie erledigen den Job und sind nicht übertrieben für solche einfachen Weiterleitungen. Es ist ratsam, mod_rewrite nicht zu verwenden, es sei denn, Sie müssen es wirklich tun.