# Mod Rewirte - xxx.php auf abc.php?id=xxx umleiten klappt nicht



## tayke (23. Februar 2007)

Hallo,
ich würde gern von *xxx.php* auf *abc.php?id=xxx* umleiten, nur leider klappt das nicht so ganz.
Wo steckt der Fehler?
RewriteRule ^(.*)\.php$ /abc.php?id=$1


----------



## Gumbo (23. Februar 2007)

Der Fehler ist, dass die Ersatzadresse „abc.php“ ebenfalls auf das Suchmuster passt und es somit zu einer Endlosschleife kommt. Es müsste also diese Datei im Speziellen oder alle tatsächlich existierenden Dateien im Allgemeinen von der Regel ausgeschlossen werden.


----------



## tayke (24. Februar 2007)

Mit RewriteCond %{REQUEST_URI} ^(.*)\.php$ klappts aber leider auch net.


----------



## Gumbo (25. Februar 2007)

Die Bedingung muss negiert werden, damit Anfragen mit dieser Endung ausgeschlossen werden.


----------



## tayke (25. Februar 2007)

hm, wenn ich das negiere (RewriteCond %{REQUEST_URI} !^(.*)\.php$) dann gibts nen 404 Fehler.


----------



## Gumbo (25. Februar 2007)

```
RewriteCond   %{REQUEST_FILENAME}   !-f
RewriteRule   ^(.*)\.php$           /abc.php?id=$1   [L]
```


----------



## tayke (26. Februar 2007)

Das klappt, vielen Dank!
Zwei Fragen noch... warum REQUEST_FILENAME und nicht REQUEST_URI und muss man explizit LAST angeben, auch wenn nichts mehr nach kommt?


----------



## Gumbo (26. Februar 2007)

Die „REQUEST_URI“-Variable ist der ursprünglich angefragte URL-Pfad. Die „REQUEST_FILENAME“-Variable hingegen ist bereits der auf das Dateisystem abgebildete Pfad zu einer Datei oder einem Verzeichnis.
Das „L“-Flag ist natürlich nicht notwendig, wenn die Regel bereits die letzte oder einzige Regel ist.


----------

