2014-05-13 7 views
7

Was ist der Unterschied zwischen [L] und [end]?
last und end sind die gleichen, nicht wahr?.htaccess [L] und [Ende] Flags

In meinem .htaccess Ich habe

RewriteEngine On 
RewriteBase/

# I use this only to test my $_SERVER variables 
RewriteRule ^phpinfo phpinfo.php [QSA,L] 

RewriteRule ^(.*)$ index.php?data=$1 [QSA,L] 

und das Verhalten der beiden end und L ist die gleiche. Ich nehme an, dass es in einem komplizierteren Beispiel nicht sein wird, also kannst du mir ein solches Beispiel geben?

Vom docs:

Der [L] Flag bewirkt, dass mod_rewrite Verarbeitung des Regelsatzes zu stoppen. In meisten Kontexten bedeutet dies, dass bei Übereinstimmung der Regel keine weiteren Regeln verarbeitet werden.

und

Verwendung der [END] Flagge enden nicht nur die aktuelle Runde der Rewrite Verarbeitung (wie [L]) , sondern verhindern auch eine nachfolgende Wiederbeschreibungs Verarbeitung von dem Auftreten in per-Verzeichnis (htaccess) Kontext.

Was bedeutet das?

+0

Siehe [meine Erklärung hier] (https://stackoverflow.com/a/47470720/444255). Sofern Sie keine Vorteile aus mehreren Runden oder Neuschreiben sehen, setzen Sie immer ein ENDE auf das Ende. :-) –

Antwort

5

Es bezieht sich auf die globale Apache-Konfiguration. Wenn Sie in der httpd.conf [L] verwenden, besteht immer noch die Möglichkeit, einige Regeln in .htaccess anzuwenden. Aber wenn Sie [END] verwenden ist das Spiel vorbei und .htaccess kann nichts hinzufügen

+0

Hält das 'L' Flag alle Regeln die ich geschrieben habe? –

+3

[L] verhindert weitere Regeln auf der gleichen Ebene, [END] verhindert Regeln auf derselben und höheren Ebenen. – JimiDini