Перенаправление заголовка 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");
Итак, у меня есть два вопроса относительно последствий этого:
- Поскольку поисковые роботы не войдут в систему, они будут всегда получай domain.com/option-a - влияет ли на них то, что у него заголовок 301?
- Какова может быть нагрузка на процессор сервера при выполнении этих перенаправлений? Я не знаю, как сделать из этого тест. Текущий сайт (на котором нет перенаправлений) посещается около 100 тысяч раз в день.
5 answers
Эффект 301 будет заключаться в том, что поисковые системы будут индексировать /option-a вместо /option-x. Что, вероятно, хорошо, так как /option-x недоступен для индекса поиска и, следовательно, может оказать положительное влияние на индекс. Только если вы используете это с умом;-)
После перенаправления поставьте exit(); чтобы остановить выполнение остальной части скрипта
header("HTTP/1.1 301 Moved Permanently");
header("Location: /option-a");
exit();
Это лучше:
<?php
//* Permanently redirect page
header("Location: new_page.php",TRUE,301);
?>
Всего один вызов, включая код 301. Также обратите внимание на относительный путь к файлу в том же каталоге (не "/dir/dir/new_page.php "и т.д.), которые, похоже, поддерживают все современные браузеры.
Я думаю, что это справедливо с PHP 5.1.2, возможно, раньше.
Убедитесь, что вы die()
выполнили перенаправление, и убедитесь, что вы сделали перенаправление КАК МОЖНО СКОРЕЕ, пока выполняется ваш скрипт. Это гарантирует, что больше никакие запросы к базе данных (если таковые имеются) не будут потрачены впустую. Это единственный совет, который я могу вам дать
Для поисковых систем 301 - лучший код ответа
Поисковые системы, такие как 301 перенаправление, лучше, чем 404 или какой-либо другой тип перенаправления на стороне клиента, не беспокойтесь.
Загрузка процессора будет минимальной, если вы хотите сэкономить еще больше циклов, вы можете попробовать обработать перенаправление в apache с помощью htaccess, тогда php даже не придется вмешиваться. Если вы хотите протестировать сервер под нагрузкой, вы можете использовать ab, который поставляется с apache, или httperf, если вы ищете более надежный инструмент тестирования.
Просто совет: использование http_response_code гораздо проще запомнить, чем писать полный заголовок:
http_response_code(301);
header('Location: /option-a');
exit;