Когда я выполняю сценарий на моем общем хостинге (linux), он просто отлично передает HTTP_REFFERER, но когда я запускаю сценарий на своем выделенном окне ubuntu с запущенным Letsencrypt, поле для HTTP_REFFERER становится пустым.
Это traker.php
$referer = $_SERVER['HTTP_REFERER'];
$agent = $_SERVER['HTTP_USER_AGENT'];
$ip = $_SERVER['REMOTE_ADDR'];
$redirect = $_GET['page'];function logger($file, $line) {
$fh = fopen($file, 'a');
fwrite($fh, $line."\n");
fclose($fh);
}
logger("clicks.txt", "Rec");
logger("clicks.txt", date("H:i:s d.m.Y")." - [".$_SERVER['REMOTE_ADDR']."] - ".$_SERVER['HTTP_USER_AGENT']." - [".$_SERVER['HTTP_REFERER']."] - ");
header("Location: $redirect");
?>
Это redirect_to_destination.php который находится в заголовке и выполняется с body onLoad="va();"
function va() {
window.location.href='http://example.com/traker.php?page=http://example.com/end_destination.php?subid=<?php echo $_SERVER["QUERY_STRING"]; ?>';
}
Последний скрипт end_destination.php делает следующее:
window.location.href='http://affiliate_link.com/?a=756547&c=8786&s1=<?php echo $_GET["subid"]; ?>';
Конечная ссылка будет http://example.com/redirect_to_destination?test_subid
Вывод файла с общего хостинга:
17:03:33 07.01.2017 - [01.001.01.001 (example ip)] - Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:50.0) Gecko/20100101 Firefox/50.0 - [http://example.com/redirect_to_destination.php?test]
Вывод файла, работающего на выделенной коробке ubuntu с подписью letsencrypt:
00:43:30 08.01.2017 - [01.001.01.001 (example ip)] - Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:50.0) Gecko/20100101 Firefox/50.0 - [] -
Любая идея?
Спасибо
https://smerity.com/articles/2013/where_did_all_the_http_referrers_go.html
HTTPS отключает ссылки HTTP на HTTP-сайты. Зачем? Согласно RFC 2616 (HTTP 1.1), это связано с возможностью кодирования конфиденциальной информации в ссылочном URL:
Клиенты НЕ ДОЛЖНЫ включать поле заголовка Referer в (незащищенный) HTTP-запрос, если ссылающаяся страница была передана по безопасному протоколу.
И частичный (не полностью поддерживается) решение:
<meta name="referrer" content="always">
Я подозреваю, что есть заголовок, который можно отправить для вашего перенаправления (так как в нем не будет HTML для мета-тегов), но я не знаю точной реализации.
Других решений пока нет …