Apache mod_rewrite
Matthias Weiss
- webserver
Hallo,
folgendes Problem:
Per get soll ein Parameter an eine anwendung übergeben werden.
Jedoch ist die Get Variable nicht immer gegeben.
Für einen Sonderfall soll die Get Variable per mod_rewrite gesetzt werden, wenn diese nicht vorhanden ist.
So sieht meine Rewrite Regel für den Fall aus, dass xyz= gesetzt ist.
RewriteEngine on
RewriteCond %{REQUEST_URI} ^*xyz=*
RewriteRule ^webapp/(.*) http://webappsrv/$1 [QSA,P]
Aber wie muss die Condition aussehen, um darauf ab zu prüfen, ob der Paramter eben nicht übertragen wird?
Ist das so richtig?
RewriteEngine on
RewriteCond %{REQUEST_URI} ^*xyz=* [nc]
RewriteRule ^webapp/(.*) http://webappsrv/$1&xyz=123 [QSA,P]
Gruss Matthias
Hallo,
ich habe nun folgende Lösung erarbeitet:
RewriteCond %{REQUEST_URI} [Itemid]{0}
RewriteRule ^/ersetzedurch(.*) http://www.myhost.de/$1 [QSA,P]
Soweit klappt es.
Ist die Variable nicht gesetzt, dann wird die Regel ausgeführt.
Allerdings stört mich noch folgender Punkt.
Ändere ich die Regel wie folgt:
RewriteCond %{REQUEST_URI} [Itemid]{0}
RewriteRule ^/ersetzedurch(.*) http://www.myhost.de/$1&Itemid=1 [QSA,P]
Dann kommt beim Server folgender Aufruf an:
http://www.myhost.de/&Itemid=1?xyz=23 .....
Genau da liegt mein Problem &Itemid sollte am ende angefügt werden.
Hab mir schon die Finger wund gesucht. Kan mir jemand kurz erklären, wie ich das ändern muss, damit es klappt.