Robbe: mod_rewrite: mehrere RewriteRule (s)

Hallo,

Ich versuche 2 unabhängige RewriteRules in der .htaccess zu definieren, leider überschreibt die nachfolgende immer die vorrangehende, obwohl ich das [last]-flag gesetzt habe.

RewriteEngine on
RewriteRule ^backend(.*) admin/index.php [L]
RewriteRule !(.(js|ico|gif|jpg|png|css)$) public/index.php

Einzeln Funktionieren die Regeln. Stehen jedoch beide Regeln in der Datei, so überschreibt immer die 2te die erste.

im a little bit confused :/

lg, robbe.

Ich verstehe nicht ganz wie

  1. Hallo,

    RewriteEngine on
    RewriteRule ^backend(.*) admin/index.php [L]
    RewriteRule !(.(js|ico|gif|jpg|png|css)$) public/index.php

    Einzeln Funktionieren die Regeln. Stehen jedoch beide Regeln in der Datei, so überschreibt immer die 2te die erste.

    Also die zweite Regel erzeugt, auch alleine, eine Endlosschleife, wenn eine Ressource angefordert wird, die nicht auf .(js|ico|gif|jpg|png|css) endet.

    Beispiel *.html wird in public/index.php umgeschrieben. Weil das im Directory-Kontext geschieht, läuft mod_rewrite nochmals drüber und schreibt public/index.php in public/index.php um usw.

    Schau mal ins Apache Error Log. Da müsste sowas wie:

    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.

    stehen.

    Jetzt gibt es mehrere Möglichkeiten. Die einfachste wäre, du nimmst die Endung php mit in die Liste auf. Wenn das nicht gehen sollte, müsstest Du mal genauer beschreiben, was Du erreichen willst.

    viele Grüße

    Axel