L и END Apache rewrite: конец текущего прохода не всегда завершает обработку

Фотография конкретного исполнения не приложена.

Внутреннее переписывание URI может снова запустить per-directory ruleset. Если правило повторно подходит к собственному результату, появляется цикл. Одного флага L не всегда достаточно, поскольку он завершает текущий проход, а не все возможные последующие стадии.

Официальное руководство flags различает L и END именно для per-directory context. END прекращает и дальнейшую соответствующую rewrite processing этого запроса. В server или virtualhost context их поведение описано одинаково, поэтому разницу нельзя переносить без учёта места правила.

Внешний redirect создаёт новый клиентский запрос и не входит в ту же гарантию прекращения. Значит, END не исправляет произвольный круг перенаправлений между разными URLs или серверами. Также нужно сохранять условия для существующих файлов, handlers и действительно нужных маршрутов.

В приёмке проверяют исходный URI, результат первого rewrite и последующие внутренние проходы. Сопоставляют error log с ответом клиента. Для front controller отдельно проверяют статические ресурсы и вложенные пути. Исчезновение одного цикла не является полной проверкой маршрутизации; правило должно завершать обработку именно в предусмотренной точке и сохранять остальные сценарии.

Основание — Official Apache HTTP Server2.4 branch reference snapshot; exact installed patch not inferred, разделы L|last; END; per-directory rounds. Сохранён текст публичной справочной публикации; конкретная реализация может поддерживать только часть возможностей. Основание — снимок официальных руководств ветки Apache HTTP Server 2.4. Это обновляемая ветка, а не документация подтверждённого patch установленного сервера. Реальные модули, virtual hosts, файловые пути и правила доступа не проверялись; запросы к рабочему серверу и изменения не выполнялись.

Запросить

Запросы отправляются на наш e-mail из вашей почтовой программы.