/ / Niezrozumiałe przepisywanie htaccess - apache, .htaccess, mod-rewrite, url-przepisywanie

Niezrozumiałe przepisywanie htaccess - apache, .htaccess, mod-rewrite, url-przepisywanie

Obecnie próbuję przepisać adres URL za pomocą mod przepisania i htaccess. Oto mój htaccess:

<IfModule mod_rewrite.c>
RewriteEngine on

RewriteRule ^lul$     lol/index.html [L]

RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>

Żądany adres URL: / lul. I to przepisuje adres URL do / app / webroot / lul. Jak to możliwe? Jeśli usunę 2 ostatnie wiersze (app / webroot / lines), wówczas przepisywanie działa poprawnie (plik index.html wyświetla tylko „Hello”, a przepisany adres URL to /lol/index.html).

Jak i dlaczego mój kod nie działa?

Odpowiedzi:

0 dla odpowiedzi № 1

Dzięki Prix:

Ponieważ ostatnia reguła mówi, przekieruj wszystko naaap / webroot / cokolwiek, a ponieważ nie weryfikujesz ani nie wymuszasz zatrzymania żadnej z twoich reguł, zostanie ona wykonana w łańcuchu. Flaga L oznacza LAST, ale jej nie narzuca, w przeciwieństwie do flagi END dostępnej w apache 2.4 i nowszych, co oznacza, że ​​skończymy po tej regule, jeśli się zgadza.