PHP-код, чтобы определить, был ли пользователь 301 перенаправлен на мой сайт

Возможно ли в PHP знать, был ли пользователь 301 перенаправлен на мой сайт?

Итак, на myoldsite.com у меня есть 301 перенаправление в файле .htaccess на mynewsite.com .

Могу ли я поместить некоторый код PHP на mynewsite.com, чтобы узнать, когда пользователь перенаправлен 301? Мне просто нужно это, чтобы отобразить конкретное сообщение, если это так.

Большое спасибо за любые указатели здесь 🙂

Solutions Collecting From Web of "PHP-код, чтобы определить, был ли пользователь 301 перенаправлен на мой сайт"

Я считаю, что с 301-переадресацией поле HTTP_REFERER будет содержать исходный референт:

  • Пользователь вводит oldsite.com в адресную строку и 301 перенаправляется на newsite.com
    • referer = ""
  • Пользователь посещает 3rdparty.com, нажимает ссылку, указывающую на oldsite.com, и 301 перенаправляется на newsite.com
    • referer = "3rdparty.com"

Такое поведение имеет смысл для 301 переадресации.

Решение. Я думаю, вы должны добавить параметр строки запроса в свой ответ 301, например ref=oldsite и проверить его значение на своем новом веб-сайте.

Если вас беспокоит наличие параметров строки запроса в ваших URL-адресах, вы можете сказать поисковым системам игнорировать определенные параметры строки запроса. Процедура зависит от поисковых систем. По-видимому, есть трюк, который работает во всех основных поисковых системах: <link rel="canonical"> . Примеры:

  • http://newsite.com/?ref=oldsite
    • http://newsite.com/
  • http://newsite.com/?ref=oldsite&page=main и
  • http://newsite.com/?page=main&ref=oldsite
    • http://newsite.com/?page=main