
Ich bin gerade dabei, eine URL umzuleiten, und wollte dabei die Direktive „RewriteRule“ verwenden.
Bei mir gilt derzeit folgende Regel:
RewriteRule ^/application/web/reservation/index.jsp https://application.domain.com/application2/web/reservation/audioForm.zul [R,L]
Ich möchte jedoch auch, dass dies funktioniert, wenn am Ende der ersten URL ein Gebietsschema hinzugefügt wird. Es können verschiedene Gebietsschemas sein (niemals statisch), daher möchte ich, dass die RewriteRule alles nimmt, was in der ersten URL nach „.jsp“ kommt, und es in der zweiten nach „.zul“ platziert.
Zum Beispiel so etwas wie:
RewriteRule ^/application/web/reservation/index.jsp(*)$ https://application.domain.com/application2/web/reservation/audioForm.zul$1 [R,L]
Ich glaube, ich habe die Syntax für den Ersetzungsteil falsch:
(*)$ and $1 respectively
Damit Sie sehen können, wie der Link mit dem Gebietsschema aussieht, habe ich unten ein Beispiel eingefügt:
https://application.domain.com/application/web/reservation/index.jsp?locale=de-DE
Ich würde in der zweiten URL nach .zul „?locale=de-DE“ platzieren wollen.
Kann mir jemand sagen, was ich falsch mache? Ich wäre für jede Hilfe sehr dankbar.
Beste grüße
Antwort1
Eigentlich ist Ihre eigene Antwort nicht korrekt.
Um eine bestimmte(das konkrete Wort ist hier wichtig)Abfragezeichenfolge, wie das von Ihnen erwähnte Beispiel "?locale=de-DE'" würden Siebrauche eine RewriteCondes zu tun.
Da in diesem speziellen Fall die Ziel-URL keine Abfragezeichenfolge angibt, besteht das Standardverhalten von mod_rewrite darin, die ursprüngliche Abfragezeichenfolge (wie auch immer diese war) daran anzuhängen, sofern Sie nicht das Flag QSD (Query String Discard) angeben.
Also, kurz:
RewriteRule ^/application/web/reservation/index.jsp https://application.domain.com/application2/web/reservation/audioForm.zul [R,L]
oder auch:
RewriteRule ^/application/web/reservation/index.jsp$ https://application.domain.com/application2/web/reservation/audioForm.zul [R,L]
würde mit einer Anfrage nach
„/application/web/reservation/index.jsp?whatever“ übereinstimmen
und würde die von Ihnen angegebene Abfragezeichenfolge an das Ziel anhängen:
„https://application.domain.com/application2/web/reservation/audioForm.zul", da keine Abfragezeichenfolge angegeben ist.
Antwort2
Ich habe es tatsächlich herausgefunden, nachdem ich ein paar Stunden herumgespielt und die mod_rewrite-API recherchiert hatte.
Apache-Modul mod_rewrite – Apache-HTTP-Server
Anstatt:
^/application/web/reservation/index.jsp(*)$
Ich benutzte:
^/application/web/reservation/index.jsp(.*)