Перенаправление заголовка PHP 301 - каковы последствия?


У меня есть domain.com . Если пользователь вошел в систему, он должен загрузиться автоматически domain.com/option-X где X - заранее определенный выбор пользователя.

Итак, я делаю это в верхней части index.php :

header("Location: /option-X"); 

Но, если пользователь не вошел в систему, я просто автоматически выбираю первый вариант следующим образом:

header("HTTP/1.1 301 Moved Permanently"); 
header("Location: /option-a"); 

Итак, у меня есть два вопроса относительно последствий этого:

  1. Поскольку поисковые роботы не войдут в систему, они будут всегда получай domain.com/option-a - влияет ли на них то, что у него заголовок 301?
  2. Какова может быть нагрузка на процессор сервера при выполнении этих перенаправлений? Я не знаю, как сделать из этого тест. Текущий сайт (на котором нет перенаправлений) посещается около 100 тысяч раз в день.
Author: Andres SK, 2011-09-06

5 answers

Эффект 301 будет заключаться в том, что поисковые системы будут индексировать /option-a вместо /option-x. Что, вероятно, хорошо, так как /option-x недоступен для индекса поиска и, следовательно, может оказать положительное влияние на индекс. Только если вы используете это с умом;-)

После перенаправления поставьте exit(); чтобы остановить выполнение остальной части скрипта

header("HTTP/1.1 301 Moved Permanently"); 
header("Location: /option-a"); 
exit();
 72
Author: Roel Veldhuizen, 2011-09-06 18:57:45

Это лучше:

<?php
//* Permanently redirect page
header("Location: new_page.php",TRUE,301);
?>

Всего один вызов, включая код 301. Также обратите внимание на относительный путь к файлу в том же каталоге (не "/dir/dir/new_page.php "и т.д.), которые, похоже, поддерживают все современные браузеры.

Я думаю, что это справедливо с PHP 5.1.2, возможно, раньше.

 23
Author: Gary Samad, 2017-05-04 00:56:42

Убедитесь, что вы die() выполнили перенаправление, и убедитесь, что вы сделали перенаправление КАК МОЖНО СКОРЕЕ, пока выполняется ваш скрипт. Это гарантирует, что больше никакие запросы к базе данных (если таковые имеются) не будут потрачены впустую. Это единственный совет, который я могу вам дать

Для поисковых систем 301 - лучший код ответа

 2
Author: genesis, 2011-09-06 18:53:25

Поисковые системы, такие как 301 перенаправление, лучше, чем 404 или какой-либо другой тип перенаправления на стороне клиента, не беспокойтесь.

Загрузка процессора будет минимальной, если вы хотите сэкономить еще больше циклов, вы можете попробовать обработать перенаправление в apache с помощью htaccess, тогда php даже не придется вмешиваться. Если вы хотите протестировать сервер под нагрузкой, вы можете использовать ab, который поставляется с apache, или httperf, если вы ищете более надежный инструмент тестирования.

 2
Author: profitphp, 2011-09-06 18:53:33

Просто совет: использование http_response_code гораздо проще запомнить, чем писать полный заголовок:

http_response_code(301);
header('Location: /option-a'); 
exit;
 2
Author: the_nuts, 2017-02-14 18:37:23