Apache Rewrite Engine: wie escapen?
AllesMeins
- webserver
Hiho,
wie escape ich ein Zeichen in den Apache-Rewrite Rules. Eigentlich würde ich ja erwarten, das dies mit einem \ geschieht, doch irgendwie scheint dem nicht so zu sein. Der konkrete Fall: Ich möchte nach einen ? suchen. Ich würde erwarten das der folgende Ausdruck auf alle Adressen der Form "_seite/?" passt:
RewriteRule _seite/?? /preview/index.php?page=$1&$2
Aus irgendwelchen seltsamen Gründen ist dem aber nicht so. Zuerst habe ich vermutet der Ausdrucks ei einfach falsch, aber als ich dann das ganze mal durch ein "neutraleres" Zeichen am Ende ersetzt habe und es dort einwandfrei funktionierte (_seite/?a) bleibt für mich nur der Schluss, das das Fragezeichen nicht richtig escaped wird. Wie muss ich das richtig machen?
Grüsse
Marc
Hiho,
noch ein paar nachträgliche Infos. Ich habe noch etwas rumprobiert und so wie es ausschaut, scheint lediglich das Fragezeichen ein problem zu sein. Andere Sonderzeichen lassen sich problemlos mit einem \ davor escapen und dann funktioniert der Spass auch
RewriteRule _seite/?[ /preview/index.php?page=$1&$2 [QSA]
Das funktioniert z.b.: problemlos
Er frisst das Fragezeichen auch als ein einzelnes Zeichen, wenn ich zum Beispiel mit wildcards suchen lasse:
RewriteRule _seite/?(.){1} /preview/index.php?page=$1&$2 [QSA]
Das passt auch auf _seite/?. Das ? scheint also schon irgendwie vom mod_rewrite erkannt zu werden. Lediglich gezielt danach zu suchen klappt einfach nicht.
Grüße
Marc
Moin,
noch ein paar nachträgliche Infos. Ich habe noch etwas rumprobiert und so wie es ausschaut, scheint lediglich das Fragezeichen ein problem zu sein. Andere Sonderzeichen lassen sich problemlos mit einem \ davor escapen und dann funktioniert der Spass auch
Also funktioniert das \ schon, nur die Suche nach dem Query-String offenbar nicht. http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewriterule bestätigt das:
| Query String
|
| The Pattern will not match against the query string. Instead, you must use a
| RewriteCond with the %{QUERY_STRING} variable.