Mod Rewrite nicht für jede URL
Henning
- php
Hallo,
ich möchte mod_rewrite verwenden und eine URL von
www.mein-domainname.de/var nach
www.mein-domainname.de/index.php?inhalt=var umschreiben.
Dafür möchte ich folgendes verwenden:
RewriteEngine On
RewriteBase /
RewriteRule ^.*$ index.php?inhalt=$1 [L,QSA]
Allerdings gibt es auch Links auf Bilder der
Form:
www.mein-domainname.de/pics/bildname.jpg (es handelt sich ausschließlich um JPEGs)
Wie kann ich diese URLs in der RewriteRule ausschließen?
Gruß,
Henning
Hallo Henning,
Wie kann ich diese URLs in der RewriteRule ausschließen?
Füge vor die RewriteRule-Zeile eine Zeile
RewriteCond %{REQUEST_URI} !^/pics
ein. Das heißt: Für alle REQUEST_URIs, die nicht mit /pics anfangen. Das !-Zeichen steht für "nicht". Danach kommt ein Regexp. Diese Zeile gilt immer für die nächste RewriteRule. Nähreres in der mod_rewrite-Doku.
Viele Grüße,
Christian
Hallo und Danke,
»»Nähreres in der mod_rewrite-Doku.
Gibt es davon eigentlich eine deutsche Übersetzung?
Gruß,
Henning
Hallo Henning,
Gibt es davon eigentlich eine deutsche Übersetzung?
Nein. Allerdings scheint da jemand hier nicht unbekanntes daran zu arbeiten: http://httpd.apache.org/docs-project/translations.html
Ansonsten empfehle ich eine Archiv-Suche nach mod_rewrite, da gibt es tonnenweise gute Beiträge.
Viele Grüße,
Christian
Hallo,
ich stelle gerade fest das ich jedes mal einen 404 erhalte. Für PHP_SELF erhalte ich /index.php (korrekt)
$_GET['inhalt'] ist aber index.php
Wie ist das zu erklären? $1 müßte die Zeichenkette nach dem / sein, oder?
Gruß,
Henning
Hallo Henning,
Wie ist das zu erklären? $1 müßte die Zeichenkette nach dem / sein, oder?
Jain. Du hast folgendes Problem: Du leitest per mod_rewrite _alles_ weiter. _Alles_. index.php wird also auch auf index.php?inhalt=index.php weitergeleitet. Der Apache merkt dann, dass er eine endlosschleife produzieren würde und bricht ab.
Füge noch eine Zusätzliche RewriteCond-Zeile ein:
RewriteCond %{REQUEST_URI} !^/index.php
dann sollte es klappen.
Viele Grüße,
Christian
Hallo,
Danke, funktioniert jetzt alles.
Gruß,
Henning