Более быстрое перенаправление, PHP или htaccess?

#php #apache #.htaccess

#php #apache #.htaccess

Вопрос:

Какой более БЫСТРЫЙ способ перенаправить конкретную (конкретную) страницу, PHP или htaccess? Учитывая, что многим разным страницам может потребоваться такое перенаправление на сайте с высоким трафиком. например, что быстрее:

PHP (никаких запросов к базе данных, просто простое перенаправление php)

 header("Location: /new.php",TRUE,301);
  

или

htaccess

 redirect 301 old.php http://site.com/new.php
  

Ответ №1:

Зависит. В общем, .htaccess будет быстрее, потому что у вас не будет накладных расходов на вызов PHP. Однако, если у вас есть 1000 перенаправлений в одном файле .htaccess на корневом уровне документа, тогда Apache нужно будет проверять каждый из них при каждой загрузке страницы. Т.Е. Вместо того, чтобы просто обслуживать index.php , теперь вам нужно будет выполнить 1000 проверок регулярных выражений, а затем выполнитьindex.php . В целом, я бы сказал, что если у вас много перенаправлений и много страниц, которые не будут перенаправлены, тогда сделайте это на PHP. В этом случае вы не платите никаких дополнительных накладных расходов за страницы, которые не нужно перенаправлять.

Ответ №2:

.htacess обрабатываются до вызова php, поэтому, если вы сможете его создать, это, безусловно, будет быстрее

Комментарии:

1. Однако. .htaccess сам загружается / анализируется при каждом попадании, поэтому, возможно, PHP может быть быстрее в некоторых обстоятельствах (например, очень сложный .htaccess для одного), особенно при наличии кэшей.

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

Ответ №3:

Если .htaccess используется вообще, Apache обработает его до начала любой обработки PHP. Я не проводил тесты по использованию одного или другого, но когда оба присутствуют, .htaccess всегда будет быстрее.

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

Комментарии:

1. htaccess всегда будет быстрее … да, но только для страниц, которые заинтересованы в переходе через htacess; если 99% ваших страниц не перенаправляются, но у вас есть 1000 строк в вашем .htaccess: тогда синтаксический анализ .htaccess для КАЖДОГО запроса замедляется больше, чем 1% страниц, которым выгодно не перенаправляться через php