Назад | Перейти на главную страницу

Флаг mod_rewrite [L] не работает должным образом?

Я думал, что флаг [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 правило.

Я вижу большой список в Вот где администратор сервера перечисляет кучу путей, которые начинаются с распознанных каталогов, но я хотел избежать этого, просто используя хорошее универсальное правило.

Если правило приводит к перенаправлению клиента, оно снова вводит список правил сверху, когда клиент делает перенаправленный запрос.