Mod Rewirte Problem

driver

Aktives Mitglied
Ich habe ein Problem mit meinem Mod Rewrite. Ich habe eine Seite in mehrern Sprachen und in Flash oder HTML, was ich folgender massen löse:
CODE
Options +FollowSymLinks

RewriteEngine on

RewriteRule ^(.*)/(.*)/(.*).html(.*)$ /inhalt.php?lang=$1&type=$2&id=$3$4 [L]



Also ein Link: "de/html/1002.html" ruft die Seite "inhalt.php?lang=de&type=html&id=1002" auf.

Wenn ich jetzt ein guestbook oder etwas ähliches habe, muss ich ja noch weiter Parameter (Seitenzahl etc.) via GET übergeben. Normalerweise würde das ja so aussehen: "de/html/1002.html?page=2" Nur mit dem Fragezeichen funktioniert es bei mir nie. Deshalb habe ich die oben angegeben Variante gemacht: "de/html/1002.html&page=2".

Meine Frage wie kann man das Ganze elegant mit Fragezeichen lösen? Ich habe mal gehört, dass das Fragezeichen ein sogenanntes geschütztes Zeichen ist, aber selbste wenn ich ein "\" vor das Fragzeichen setzte funktionierte es nicht.


CODE
Options +FollowSymLinks

RewriteEngine on

RewriteRule ^(.*)/(.*)/(.*).html\?(.*)$ /inhalt.php?lang=$1&type=$2&id=$3$4 [L]



Hatte jemandman schon mal ähnliche Probleme gehabt?

Driver
 
Ja. Roger hat mich damals auf qsa - beschrieben im offiziellen Manual - aufmerksam gemacht.

QUOTE 'qsappend|QSA' (query string append)
This flag forces the rewriting engine to append a query string part in the substitution string to the existing one instead of replacing it. Use this when you want to add more data to the query string via a rewrite rule.

Zu Deutsch: de/html/1002.html?page=2&wo=tackatuckuland -> /inhalt.php?lang=$1&type=$2&id=$3$4&page=2&wo=tackatuckuland

 
Vielen Dank.

Dein Lösung ist wohl genial. Ich habe mir bisher immer überlegt wie ich das "?" Zeichen umgehen kann, aber so ist es viel eleganter und simpler.

Driver
 
Zurück
Oben