Обнаружить изменение домена? - PullRequest
1 голос
/ 19 июня 2011

Можно ли определить источник веб-пересылки?

Например, Domain A перенаправляет на Domain B, где домен B имеет хостинг PHP?

В основном я хотел бы что-то вроде следующего:

if ($was_redirected_from_domain_a) { ... }

Ответы [ 4 ]

3 голосов
/ 19 июня 2011

Как указывают @MoarCodePlz и @Christopher Armstrong, $_SERVER["HTTP_REFERER"] является решением.

Однако, в вашем конкретном случае, два перенаправления имеют место:

http://fhc.quickmediasolutions.com/image/-1457172086.png

Таким образом, исходная информация о реферере теряется. Вам нужно будет отключить второе перенаправление и запустить ваш PHP на индексной странице my-art-gallery.co.uk.

Обновление после просмотра phpinfo() вывода:

$_SERVER["HTTP_REFER"] действительно полностью отсутствует.

Я подозреваю, что виноват этот параметр конфигурации:

suhosin.server.strip = On 

ваша хостинговая компания использует патч Suhosin PHP, который позволяет удалять определенные данные со страницы PHP для повышения безопасности. Возможно, вам придется попросить их активировать HTTP_REFERER.

Единственным другим способом было бы перенаправление домена A на что-то вроде

domainb.co.uk/index.php?camefrom=domainA

Затем вы можете получить аргумент domainA через $_GET["camefrom"] - если панель управления хостинг-провайдера допускает такое перенаправление.

1 голос
/ 19 июня 2011

Как сказал Пекка, это зависит от того, как пользователь был перенаправлен. Попробуйте проверить значение $ _SERVER ['http_referrer']:

if ($_SERVER['HTTP_REFERER'] == 'mydomain.com/mypage'){
    echo 'Came from mydomain';
}
1 голос
/ 19 июня 2011

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

Ссылка на URL должна быть найдена с помощью следующего:

$myVar = $_SERVER['HTTP_REFERER'];
0 голосов
/ 15 апреля 2016

$_SERVER["HTTP_REFERER"] не является надежным решением.В разных случаях это не работает.

HTTP_REFERER не содержит URL перенаправленной страницы, но URL страницы, на которой пользователь щелкнул.

Например, на странице example.com есть ссылка на t.co/somelink, которая перенаправляет на yoursite.com.$_SERVER["HTTP_REFER"] будет содержать http://example.com, и невозможно узнать, что ваш посетитель был перенаправлен на ваш сайт с короткого URL-адреса в твиттере.

Единственный способ узнать, что пользователь пришел по вашей ссылке в Twitter,должен включать параметр $_GET, как уже предлагалось: пусть ссылка t.co/somelink перенаправляет на yoursite.com/?camefrom=twitter.

...