- RewriteRule
- RewriteCond (хоть он и идет первым в конфигах, но выполняется после RewriteRul)
- RewriteBase (в конце обработки RewriteBase дописывает к результату указанный путь)
Apache поступает так, потому что в процессе изменения запроса он мог быть перенаправлен в другую директорию. В ней может быть собственный .htaccess, который не участвовал в предыдущей обработке запроса. В этом же новом .htaccess могут быть правила, которые влияют на обработку запроса — как правила mod_rewrite, так и правила других модулей. Чтобы корректно обработать эту ситуацию, Apache должен запустить весь цикл обработки заново.
— Постойте, но ведь есть флаг [L], который останавливает обработку запроса mod_rewrite'ом!
Не совсем так. Флаг [L] останавливает текущую итерацию обработки запроса. Однако если запрос был изменен теми RewriteRule, которые все-таки успели отработать, Apache запустит цикл обработки запроса заново с первого RewriteRule.
http://habrahabr.ru/company/sprinthost/blog/129560/
Комментариев нет:
Отправить комментарий