eblinkoff
@eblinkoff
придурок

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

Внезапно из практики выяснил, что может быть так, что редиректы на php обрабатываются сначала, а в .htaccess потом. Я всегда считал, что htaccess сначала, очевидно, неправильно. А ведь есть ещё nginx, cloudflare и, может быть, ещё что-то. Посоветуйте, пожалуйста, хорошую статью про это или объясните так, если возможно. В гугле вижу мягко говоря непрофессиональные ответы.
  • Вопрос задан
  • 59 просмотров
Решения вопроса 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 вообще не знает такого файла
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы