Dennis: mod_rewrite Frage

Beitrag lesen

Hi Frank,

Ich habe index.php?main=agb mittels

RewriteRule ^(.*).html$ index.php?main=$1

in agb.html umgewandelt.

Man sagt es eigentlich eher anders herum - du lässt agb.html in index.php?main=agb "umwandelt" bzw. umschreiben ;-)

Wenn ich nun aber hinten dran noch eine weitere Variable habe (zB. index.php?main=agb&lang=de) kann ich es mit

RewriteRule ^(.*).html,(.*)$ index.php?main=$1&lang=$2

in agb.html,de umwandeln.

Mein Problem ist nun aber, das Variante 1 nicht mehr funktioniert ohne das ich am Ende das Komma (agb.html,) stehen habe.

Wie setze ich dass am besten um?

Probiers mal so:

RewriteRule ^(.*)\.html(,.*)?$ index.php?main=$1&lang=$2

Alternativ ließe sich das aber wohl auch so machen, du rufst die Datei über
 agb.html (ohne Sprachangabe) oder
 agb.html?lang=de (mit Sprachangabe) auf,
was umgewandelt wird zu
 index.php?main=agb&lang=de
durch diese Rewrite Rule:

RewriteRule ^(.*)\.html$ index.php?main=$1 [QSA]

Das QSA steht für Query-String append und bewirkt, dass alle weiteren "Anhängsel" auch an die neue URL wieder mit angehängt werden.

Ein Hinweis noch: Ich hoffe, dass du in der index.php _nicht_
 include $_GET['main']; //große Sicherheitslücke!
verwendest.

MfG, Dennis.

--
Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
Crypt::PasswdMD5 jetzt auch in PHP
Schon gewusst, dass Bugs und Feature Vorschläge für das CForum ins Entwicklerforum oder in den BugTracker von WWWTech gehören und nicht hier her?