Я думал, что флаг [L] указывает, что «это правило должно быть последним правилом, обработанным для этого HTTP-запроса ..»
Однако, когда у меня есть 2 правила, например:
RewriteRule ^test$ php/test.php [L]
RewriteRule (.*) error.php
Всегда случаются запросы к http: // локальный / тест перейдите на error.php, не в test.php, как я и ожидал, поскольку я поставил там [L]. Если там закомментировать второе правило, то запросы к http: // локальный / тест перейдите к test.php, как и ожидалось.
На самом деле я пытаюсь поймать ошибку 404 с помощью mod_rewrite. Возможно, то, что я пытаюсь сделать, просто неправильно. Но я все еще хочу знать, почему действует универсальное правило, поскольку я сделал поставьте [L] после ^test
правило.
Я вижу большой список в Вот где администратор сервера перечисляет кучу путей, которые начинаются с распознанных каталогов, но я хотел избежать этого, просто используя хорошее универсальное правило.
Если правило приводит к перенаправлению клиента, оно снова вводит список правил сверху, когда клиент делает перенаправленный запрос.