Задать вопрос
eblinkoff
@eblinkoff
придурок

В каком порядке обрабатываются редиректы на сайтах?

Внезапно из практики выяснил, что может быть так, что редиректы на php обрабатываются сначала, а в .htaccess потом. Я всегда считал, что htaccess сначала, очевидно, неправильно. А ведь есть ещё nginx, cloudflare и, может быть, ещё что-то. Посоветуйте, пожалуйста, хорошую статью про это или объясните так, если возможно. В гугле вижу мягко говоря непрофессиональные ответы.
  • Вопрос задан
  • 66 просмотров
Подписаться 1 Простой 3 комментария
Решения вопроса 1
shambler81
@shambler81 Куратор тега htaccess
Редиректы образовываютя по ходу запроса от клиента.
Не со стороны сервера а как клиент получет контент.
1. Соответственно в начале claudflare посколкьу он до сайта а отвечает еще за ДНС, соответственно уже там могут быть редиректы.
2. Он добирается до nginx и тут начинает делать магию уже он,
3. Потом он добирается до apache который делает свои редиректы ( конечно если он вообще есть, но тогда и htaccess читать вообще некому)
4. Добирается запрос до языка скажем до php там уже могу быть редиректы в твоем движке.
Из особенностей не забывай что
.htaccess читается сверху вниз в цикл бесконечно !!!!
то есть пока урлы не устаканятся и не удовлетворят всем услвиям они продолжат меняться.
Чтение сверху вниз!
и да [L] это не то что ты думаешь.
Теперь по твоему вопросу про пхп до .htaccess
нет не обрабатываются если нет эксклюзивных ответвлений.
К примеру site.ru/phpmyadmin может рбрабатывать редиректы до твоего .htassess поскольку это вообще другйо сайт и другой конфиг у которого нет твоего .htaccess
Может быть эсклюзив когд php делает прокси такое тоже имеет место бытьт и порой толькто этот вариант подходит.
В таком случае пхп забирает контент с бэка меняет его и выдает уже тебе. в таком случае он будет до .htaccess
но как понимаешь это эксклюзив.
К примеру если тебе нужно чтоб новые урлы сайта были на новом движке а старые урлы если этого урал нет в новом, то брать со старого сайта.
Ты в 404.php пихаеш проксю и вместо 404 ты пытаешся еще достать 200 и если его и там нет то даеш 404. но это костыли и это не стандарт.
Ну и да если у тебя nginx+apache+fastcgi или FPM в конце
то у тебя не будут работать некоторые директивы в .htassess к примеру php_value* и php_fla*8 php_admin* но это не редиректы.
А вот если у тебя ngixn +FPM то .htaccess вообще читаться не будет ибо nginx вообще не знает такого файла
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы