mod_rewrite Problem
splinter
- webserver
Hallo
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'??
Wahrscheinlich seh ich vor lauter Bäumen den Wald nicht mehr.
.htaccess:
RewriteRule ^([^/]+)/?$ index.php?command=$1
Scheinbar tritt dieses Problem nicht auf wenn man ein [QSA] Flag anhängt!
Den Grund verstehe ich aber trotzdem nicht! Kann mir das jemand erklären?
Hi,
Ich hab eine ganz kleine RewriteRule die eigentlich funktionieren sollte doch ich finde den Fehler nicht.
.htaccess:
RewriteRule ^([^/]+)/?$ index.php?command=$1index.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