Дело в том, что HTTP_REFERER
- это сайт А. Вот как работает 301.
Тем не менее, простой способ сделать это - перевести URL-адрес ссылающегося на сайт A в конец URL-адреса сайта B в качестве переменной. Затем, на сайте B, в любое время, когда у вас есть реферал с сайта A, вы можете его получить.
<?php
header("Location: http://site-b.com/?ref="
.urlencode($_SERVER['HTTP_REFERER']),TRUE,301);
?>
Затем, конечно, на сайте B, получите доступ к urldecode($_GET['ref'])
для вашего реферера.
Однако ... если вы хотите избежать _GET
переменных, у вас есть несколько вариантов.
A) Соберите запрос _GET
, затем повторно измените URL - IE перенаправляет сайт B на «чистую» версию самого себя.
B) Перед перенаправлением header()
ваша перенаправляющая страница перенаправляет curl
или stream_get_contents
на страницу "сбора", где вы собираете и сохраняете любую информацию о сеансе (например, реферера) и подготовить его к обработке при перенаправлении.