Что происходит первым?.htaccess или php-код?

Если я использую mod_rewrite для управления всеми моими переадресациями 301, это происходит до того, как моя страница будет обслуживаться? поэтому, если у меня также есть куча правил переадресации в php script, который выполняется на моей странице, сначала будет первый шаг .htaccess?

Ответ 1

Когда выполняется запрос к URI, затронутому файлом .htaccess, Apache будет обрабатывать любые правила перезаписи до выполнения любого из ваших PHP-кода.

Ответ 2

.Htaccess вступит в действие первым. Если вы посмотрите на цикл запросов Apache:

Apache Request Cycle

PHP является обработчиком ответов. mod_rewrite запускается при преобразовании URI, за исключением правил перезаписи в блоках .htaccess и <Directory> или <Location>, которые выполняются на этапе исправления. Это связано с тем, что Apache не знает, в каком каталоге он находится (и, следовательно, в каком <Directory> или .htaccess для чтения), до завершения преобразования URI.

В ответ на вопрос gabriel1836 об изображении я взял его со второго слайда этой презентации, но первоначально из книги: " Написание модулей Apache на Perl и C", которые я очень рекомендую.

Ответ 3

Да, файл .htaccess анализируется до того, как ваш script будет обслуживаться.

Ответ 4

.htaccess происходит первым.

Ответ 5

htaccess управляется веб-сервером. Этот файл будет учтен до вашего файла PHP.

Например, вы можете ограничить доступ к определенной папке с файлом htaccess. Таким образом, он должен быть ответственным перед вашим PHP.

Надеюсь, что это поможет.

Ответ 6

.htaccess выполняется Apache перед выполнением PHP скрипт. (предположим, что выполняется php script, а затем .htaccess перенаправляет другую страницу...).

Ответ 7

Вы всегда можете проверить это с помощью следующей команды:

wget -S --spider http://yourdomain.com

С помощью этой команды вы увидите, кто отвечает на ваш запрос.

Как и все остальные, первый .htaccess.

Ответ 8

В принципе, .htaccess более или менее требует соответствующего PHP-кода или файлов, так как согласно правилам, указанным в .htaccess, сначала означает .htaccess.