RewriteRules: nachfolgende Rules ignorieren?

Hallöchen,

Ich bin gerade dabei meine URLs in eine Form ohne dateiendung zu bringen (Die PHP Dokumente)
z.B. wird /{index} auf index.php?page=index geleitet
Nun soll aber die RewriteRule

Die letzte sein. Wie oben zu sehen ist, verwende ich die L-Flag. Auf modrewrite.de steht zu dieser Flag:

[quote]Last | Bearbeitung abschliessen, keine weiteren Regeln anwenden. [/quote]Verstehe ich das nun falsch, wenn ich davon ausgehe, dass alle nachfolgenden Rules ignoriert werden?

Weiter unten habe ich nun die RewriteRule

Da die error.php nicht existiert, kommt nun bei mir die standard-apache-404 Fehlermeldung.
Wieso?

Versuchs mal mit:

:wink:

setze mal als weiteres flag wenn du den querystring veränderst [QSA]

Nee, geht leider beides nicht, was ich jetzt hab sieht so aus:

RewriteEngine On RewriteRule ^\{([a-z]*)\}$ index.php?t=static&p=$1 [NC,QSA,L] RewriteRule ^\{([a-z]*);([a-z]*)\}$ index.php?t=$1&p=$2 [NC,QSA,L] RewriteRule ^(.*)\.php$ error.php [NC]
Da kommt wie gesagt der 404 Error…

dann trifft die rewrite rule wohl nicht zu?

Ähm doch, die trifft zu :wink: , wenn ich nämlich {index} aufrufe, werde ich auch schön brav auf die index.php geleitet mit den definierten _GET Werten… :unamused:

Jein.

Die nachfolgenden Regeln werden nicht mehr abgearbeitet - in diesem Rewriting-Durchgang.

Wenn man Rewriting per .htaccess konfiguriert, ist es aber prinzipbedingt so, dass jeder umgeschriebene Request anschliessend erneut durch die Bearbeitung geschickt wird (so, als wäre er ein gerade neu hereingekommener Request).

Und wenn da deine Regel, bei der du das L-Flag gesetzt hast, nicht mehr zur Anwendung kommt - dann haben die nachfolgenden Regeln ihren Auftritt.

Achso :slight_smile:

Hat dann bei der neuen Abarbeitung die Variable %{REQUEST_FILENAME} (etc…) den neuen Wert, oder wäre der Wert immernoch der alte?