dedlfix: Probleme mit der ReWrite-Engine

Beitrag lesen

Tach!

Offenbar ist .* in dem Fall nicht der richtige Ausdruck um "alles" zu beschreiben. Hab jetzt stattdessen mal [0-9a-z-]+ genommen.

Doch, .* steht für alles und das schließt die index.php mit ein, was die Problemursache ist. Nach solch einem Umschreiben schickt mod_rewrite die neu gebildete URL intern erneut in die Request-URL-Auflösungsmaschine. Diese kommt wieder an deiner Regel vorbei, diesmal mit index.php (der Rest ist Querystring und wird von den Umschreib-Regeln ignoriert). Das passt ebenfalls und wird erneut umgeschrieben. Dein Ausdruck [0-9a-z-]+ jedoch enthält keinen Punkt, weswegen die Regel nicht mehr auf index.php passt.

Man kann das Problem auch ohne Einschränkung auf bestimmte Zeichen lösen, indem man der RewriteRule Bedingungen voranstellt:

RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d

Diese schließen real existierende Dateien und Verzeichnisse von der Regel aus.

dedlfix.