Мой сайт на 100% https. У меня есть ссылки на другие http-домены. Заголовок реферера не устанавливается при связывании со страницы https на страницу http. От http://en.wikipedia.org/wiki/HTTP_referrer
Если доступ к веб-сайту осуществляется через соединение HTTP Secure (HTTPS), и ссылка указывает куда-либо, кроме другого безопасного местоположения, то поле реферера не отправляется.
Я бы предпочел, чтобы другие домены могли видеть реферера, чтобы они знали, что трафик исходит от моего домена. Есть ли способ заставить этот заголовок или есть другое решение?
Обновить
Я провел базовое тестирование с использованием перенаправления:
http page -- link to http --> 301 redirect --> http page = referrer intact
https page -- link to https --> 301 redirect --> http page = referrer blank
https page -- link to http --> 301 redirect --> http page = referrer blank
https page -- link to http --> 302 redirect --> http page = referrer blank
Реферер теряется при ссылке со страницы https на страницу перенаправления http в моем собственном домене. Таким образом, нет никакого реферера на перенаправлении.
Origin
должен быть неповрежденным, но может не подходить к вашему варианту использования.Ответы:
Как уже упоминалось, этот ответ есть новый способ сделать это: Политика реферера / метатег.
Смотрите спецификацию и пример в этом вопросе .
источник
У меня тоже была такая же проблема. Я решаю, добавив метатег, как показано ниже, и он будет работать только в Chrome и Safari.
источник
К сожалению, вы не можете ссылаться на HTTPS на сайты, использующие HTTP. Однако вы можете использовать HTTPS для HTTPS или HTTP для HTTPS.
Обходным путем будет использование внутреннего скрипта перенаправления, который вместо прямой ссылки на посетителя по HTTPS перенаправляет на HTTP, а затем перенаправляет.
Например:
<a href="http://www.yours.com/out.php?www.other.com">www.outboundsite.com</a>
но это не будет использовать оригинальный реферер.Другая возможность - использовать трекбеки, а не рефереры, и, насколько я знаю, это работает в HTTPS.
источник
Я смог установить ссылку со страницы HTTPS на страницу HTTP в другом домене и по-прежнему передавать URL первой страницы в качестве источника перехода, используя следующую технику.
Определения
Исходная страница : страница HTTPS, на которой находится ссылка на целевую страницу, размещенную на HTTP. В этом примере:
https://example1.com/origin.html
Целевая страница : HTTP-страница, которая имеет доступ к рефереру исходной страницы. В этом примере:
http://example2.com/destination.html
Базовый план
Это дает эффект перенаправления с HTTP-версии исходной страницы:
Ссылка на исходной странице HTTPS ссылается на текущую страницу, но добавляет параметр запроса для целевой страницы [1]. например:
https://example1.com/origin.html?goto=http://example2.com/destination.html
При нажатии на ссылку сервер на example1.com прерывает стандартный запрос, когда присутствует параметр запроса 'goto'. Это тогда:
http://example1.com/origin.html
Сервер проверяет каждый запрос на cookie «goto» и, если он присутствует, удаляет cookie, а затем отображает очень простую страницу перенаправления. Эта страница содержит [2]:
Заметки
[1] Это базовое решение является открытым перенаправителем, и следует уделить некоторое внимание защите от злоумышленников с помощью параметра запроса goto для перенаправления UA при фишинг-атаках.
[2] Не все браузеры отправляют реферер при перенаправлении через JS redirect или meta meta tag. В моем тестировании IE8 и ниже не проходит реферер.
Я не уверен, позволит ли этот метод сканерам поисковых систем переходить по ссылкам. Это не важно для моих требований.
Если в UA отключены файлы cookie, он снова будет перенаправлен на исходную страницу.
Разрешение HTTP-соединений только для перенаправлений
На моем сервере у меня есть правило Apache для принудительного применения HTTPS независимо от запроса:
Чтобы вышеописанная техника перенаправления работала, мне нужен какой-то способ условно разрешить HTTP-соединения. Есть много способов сделать это. Я решил, что печенье будет работать.
Файл cookie disable_ssl будет установлен на шаге 2, а затем удален на шаге 3.
источник
в соответствии с протоколом HTTP 1.1 http://www.w3.org/Protocols/rfc2616/rfc2616-sec15.html#sec15.1.3
Клиенты НЕ ДОЛЖНЫ включать поле заголовка Referer в (незащищенный) HTTP-запрос, если ссылающаяся страница была передана с защищенным
источник
Похоже, то, что вы хотите, не возможно, поэтому возможный обходной путь; если целевой сайт использует Google Analytics (или, как я полагаю, совместимая программа, Piwik использует аналогичный синтаксис, а другие пакеты статистики могут быть ненормальными, чтобы игнорировать это), вы можете отправить параметры отслеживания, например, по ссылке на example.com
это будет показано в их GA с деталями, убедитесь, что вы выбрали значения, которые вряд ли кто-либо другой будет использовать, чтобы вы не навязывали им конфликты / или не скрывали свой трафик за кем-то еще
Google может сделать здесь удобный построитель URL http://support.google.com/analytics/answer/1033867?hl=ru.
Обновление - ре: этикет
Не зная больше о характере трафика, я могу говорить только в общем / лично ...
этикет всегда будет в глазах смотрящего. Без этого я думаю, что в GA, по крайней мере, это будет выглядеть как прямое или, может быть (не определено), что исказит их цифры, чтобы создать впечатление, что их бренд был больше, чем он есть. Лично я предпочел бы тщательно выбранную кампанию, чтобы я знал, откуда идет трафик.
Вы также можете посмотреть на это так: если вы вряд ли отправите им какой-либо трафик, они, вероятно, не заметят, если вы отправите им много, они, вероятно, не будут жаловаться! Если они это сделают, то вы обычно можете найти кого-то еще, чтобы дать бесплатный трафик!
и если вы очень конкретны, это не должно вызывать проблем; кампания в качестве названия вашего сайта и источника в качестве раздела вашего сайта может быть?
источник