Zur Navigation

mod_rewrite %{REQUEST_URI} verfälscht?

1 taaz

Hallo,

ich habe folgende .htaccess
RewriteEngine on
RewriteCond %{REQUEST_URI} (.*)\.html$
RewriteRule (.*)\.html$ template.php?tpl=$1

RewriteCond %{REQUEST_URI} !(.*)\.html$
RewriteCond %{REQUEST_URI} (.*)/(.*)\.(.*)$
RewriteRule (.*)/(.*)\.(.*)$ loader.php?path=$1/$2.$3

RewriteCond %{REQUEST_URI} !(.*)\.html$
RewriteCond %{REQUEST_URI} !(.*)/(.*)\.(.*)$
RewriteCond %{REQUEST_URI} ^/(.*)\.(.*)$
RewriteRule (.*)\.(.*)$ loader.php?path=$1.$2

Rufe ich nun domain.de/home.html auf, wird intern richtigerweise template.php?tpl=home aufgerufen.

Rufe ich domain.de/img/bild.jpg auf, funktioniert dies auch.

Rufe ich aber domain.de/bild.jpg auf, funktioniert das nicht. Als path wird dann loader.php übergeben, statt wie erwartet bild.jpg.

Was mache ich falsch? :(

lg
taaz

12.05.2010 15:59 | geändert: 12.05.2010 16:02

2 Jörg Kruse

Die RewriteRule wird solange durchlaufen, bis es im REQUEST_URI nichts mehr zu ersetzen gibt

bild.jpg -> loader.php?path=bild.jpg -> loader.php?path=loader.php

Dem kannst mit einer passenden RewriteCond vorbeugen

RewriteCond %{REQUEST_URI} !loader\.php
RewriteRule (.*)\.(.*)$ loader.php?path=$1.$2

12.05.2010 18:14

3 taaz

Vielen Dank.
Funktioniert einwandfrei.

Habe dein Forum ganz neu gefunden und bin bisher begeistert.
Weiter so ;)

lg

12.05.2010 18:46

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]