Autor Zpráva
RaDim
Profil
Řeším mod_rewrite dva dny a nikde jsem nenašel to základní, co potřebuju vědět - jak přesně funguje [L]. Podle mě by to mělo být tak (a podle toho co všude čtu), že pokud regulární výraz platí, tak se provede podstrčení. A pokud použiju [L], tak se žádné další RewriteRule neprovádí.

Citace z http://www.sindelka.cz/cz/apache-a-mod-rewrite/
L (Last) - Jednoduše řekne serveru, že se jedná o poslední rewrite a žádná následující pravidla nemá zpracovávat
Citace z http://www.jakpsatweb.cz/server/mod-rewrite.html
[L] Poslední pravidlo, nic už dál nepřepisuj
Citace z http://interval.cz/clanky/mod-rewrite-pro-hezka-url-rewriteengine-a-re writerule/
Do hranatých závorek se pak uzavírají další příkazy. V tomto případě jsme použili L (Last rule), což znamená, že je toto pravidlo konečné.

Proč potom, když mám nasledující kód:
RewriteEngine on
RewriteRule ^(.*)(graphics/)(.+)(\.png|\.gif|\.jpeg|\.jpg|\.jp2|\.bmp)$ index.php?img=true&imgurl=graphics/$3$4 [L]
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]
...a zadám tuto adresu:
http://localhost/aaa/graphics/a.png
...tak proč mám v indexu toto:
Array ( [url] => index.php [img] => true [imgurl] => graphics/a.png )
Myslím, že je jasně vidět, že za prvním RewriteRule mám [L], takže je to poslední RewriteRuel a další se nebude dělat. Proč ale potom dostanu i proměnnou "url"?

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0