last Flag im Modul mod_rewrite

Alles, was den Apache betrifft, kann hier besprochen werden.

last Flag im Modul mod_rewrite

Postby apacheJoe » 09. February 2011 09:06

Hallo,
ich verstehe das last|l Flag in mod_rewrite nicht. Kann mir das mal jemand erklären. Es macht nie das, was ich davon erwarte. Beispiel:

Code: Select all
RewriteCond %{REQUEST_URI}  ^/gnlpfth$
RewriteRule ^(.*)$ /cufon.htm [L]

RewriteCond %{REQUEST_URI}  ^/cufon.htm$
RewriteRule ^(.*)$ /golden.html [L]


Aufruf von /gnlpfth gibt den Inhalt von /golden.html aus. Das [L] hinter der ersten Regel sollte doch die Umschreibung beenden, oder? Eigentlich sollte doch der Inhalt von /cufon.htm angezeigt werden? Aber offensichtlich wird die zweite Condition auch ausgewertet und die zweite Regel dann ausgeführt. Ich habe das auf mehreren Servern, lokal im XAMPP und online ausprobiert.
Last edited by apacheJoe on 10. February 2011 08:06, edited 1 time in total.
apacheJoe
 
Posts: 2
Joined: 09. February 2011 09:00

Re: last Flad im Modul mod_rewrite

Postby Nobbie » 09. February 2011 12:37

apacheJoe wrote:Aufruf von /gnlpfth gibt den Inhalt von /golden.html aus. Das [L] hinter der ersten Regel sollte doch die Umschreibung beenden, oder?


Zunächst einmal: ja. Tut es auch.

apacheJoe wrote:Eigentlich sollte doch der Inhalt von /cufon.htm angezeigt werden?


Ja, sollte. Würde Apache auch machen - aber im Verzeichnis, wo cufon.htm liegt, liegt "auch" eine .htaccess (dämmert langsam etwas?). Und diese .htaccess wird auch abgearbeitet, und dadurch wird aus cufon.htm nun golden.html gemacht.

Falls Du noch nicht verstanden hast, was da nun passiert: lösche die .htaccess mal aus dem DocumentRoot Verzeichnis und stelle sie stattdessen ins Verzeichnis /gnhpfth - und probier dann noch einmal.
Nobbie
 
Posts: 13183
Joined: 09. March 2008 13:04

Re: last Flad im Modul mod_rewrite

Postby apacheJoe » 10. February 2011 08:05

/golden.html, /cufon.htm und .htaccess liegen alle im root. Das Verzeichnis /gnlpfth existiert gar nicht.

Heißt das, dass für diesen Aufbau es nicht möglich ist, nach der ersten Regel abzubrechen? Wird also die erste Regel ausgeführt, der Rewrite abgeschickt und dann die .htaccess nochmals ausgewertet, so dass die zweite Regel ausgeführt wird?
apacheJoe
 
Posts: 2
Joined: 09. February 2011 09:00

Re: last Flad im Modul mod_rewrite

Postby Nobbie » 10. February 2011 09:40

apacheJoe wrote: Wird also die erste Regel ausgeführt, der Rewrite abgeschickt und dann die .htaccess nochmals ausgewertet, so dass die zweite Regel ausgeführt wird?


Genau. Das ist ja in den meisten Scenarien auch so gewollt. Und wenn Du den Ordner anlegst und die .htaccess dorthin stellst, wird sie nur einmal durchlaufen.
Nobbie
 
Posts: 13183
Joined: 09. March 2008 13:04


Return to Apache

Who is online

Users browsing this forum: No registered users and 16 guests