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 № 1Dzię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.