Patrick Andrieu: mod_rewrite: Fehler in der .htaccess

Beitrag lesen

Hallo Willi!

RewriteRule   ^([1]*)$ $1.php

  • wenn man nur z.B. /index eingibt, soll man auf index.php weitergeleitet werden - das läuft bei mir nicht.
    "Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace."

Mit Deinem gierigen RegExp wundert mich das nicht. Schau mal passiert:
^: Beginn des Strings (Nullzeichen)

Nur hier gibst Du keine Begrenzung! Was passiert also? index wird zu index.php gewandelt, da greift aber wieder die RegExp: Im String index.php steht ja nichts davor (^), ist kein slash und kein Unterstrich enthalten ([1:1]), besteht aus 0 bis vielen Zeichen bis zum Stringende, also wird versucht wieder umzuleiten zu $1.php, was jetzt index.php.php ist und auch gematcht wird; nach ein paar mal hast Du index.php.php.php.php.php.php.php - und es passt immer noch zum Suchmuster. Die Ressource gibt es nicht.

Wegen des 500er kann ich Dir leider nichts sagen. Versuch erstmal nach vorigem Entfernen des letzten Rules (dessen RegExp ich eben auseinandergenommen habe), ob ein absichtlich fehlerhafter Script Dein Error Document aufruft.

Viele Grüße aus Frankfurt/Main,
Patrick

--

_ - jenseits vom delirium - _
[link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
Nichts ist unmöglich? Doch!
Heute schon gegökt?

  1. kein slash und kein Unterstrich
    *: keins oder beliebig viele Zeichen bis
    $: Stringende ↩︎ ↩︎