ChrisB: mod_rewrite Problem

Beitrag lesen

Hi,

Ich hab eine ganz kleine RewriteRule die eigentlich funktionieren sollte doch ich finde den Fehler nicht.

.htaccess:
RewriteRule ^([^/]+)/?$ index.php?command=$1

index.php:
echo $_GET['command'];

Browserzeile:
/test/

Wieso zum Geier ist command immer 'index.php'??

Weil /test/ auf index.php?command=test umgeschrieben wird - und dann der naechste Durchlauf erfolgt, der das wiederum auf index.php?command=index.php umschreibt, weil dein Suchausdruck auf index.php natuerlich ebenso matcht wie auf test.

Scheinbar tritt dieses Problem nicht auf wenn man ein [QSA] Flag anhängt!

Dann wird die interne Unterabfrage nach index.php?command=test wiederum auf index.php?command=index.php umgeschrieben (der Querystring-Part wird von der RewriteRule nicht beachtet) - und durch das Flag QSA wird dann noch der urspruengliche Querystring-Inhalt command=test hintendran gehaengt.
Das laeuft auf index.php?command=index.php&command=test hinaus, wobei PHP dir nur den letzten Wert in $_GET['command'] zur Verfuegung stellt, weil dieser den ersten Parameter ueberschreibt.

MfG ChrisB