Как использовать HTTP-заголовок referer

Заголовок HTTP referer передается с браузера на сервер, чтобы сообщить, на какой странице читатель находился перед тем, как перешел на. Данная информация может быть использована, чтобы предоставить специальные предложения для целевых пользователей, перенаправить покупателей или сгруппировать пользователей веб-сайта по определенным критериям.

Можно использовать такие языки, как JavaScript, PHP или ASP, чтобы считать информацию, содержащуюся в заголовке referer. А также добавить строки кода в файл .htaccess.

Сбор из referer при помощи PHP, JavaScript и ASP

PHP хранит информацию из referer в системной переменной HTTP_REFERER. Чтобы отобразить ее на PHP-странице, нужен следующий код:

if(isset($_SERVER['HTTP_REFERER'])) { echo $_SERVER['HTTP_REFERER'];}

Он проверяет, включает ли переменная значение, а далее отображает его на экран. Вместо echo $_SERVER[‘HTTP_REFERER’]; можно без проблем задать строки скрипта таким образом, чтобы проверить разные referer.

JavaScript использует для чтения server http referer DOM. Так же, как в случае с PHP, необходимо проверить, включает ли заголовок значение. Если вы хотели бы управлять переменно, то сначала необходимо установить данную переменную. Вот как отобразить referer на странице при помощи JavaScript.

Обратите внимание, что DOM использует альтернативное написание referer:

if(document.referrer) { var myReferer = document.referrer; document.write(myReferer);}

После этого можно использовать заголовок в скрипте с переменной myReferer.

ASP, как и PHP, устанавливает referer в виде системной переменной. После чего необходимо приобрести данную информацию следующим образом:

if(Request.ServerVariables("HTTP_REFERER")) { Dim myReferer = Request.ServerVariables("HTTP_REFERER")Response.Write(myReferer)}

Также можно легко изменить скрипт с использование переменной myReferer.

После того как вы получили referer, что с ним делать?

После того, как вы получили информацию из HTTP referer, ее можно использовать в скриптах веб-сайта. Например, чтобы вывести данные о том, откуда пришли пользователи. Но намного интереснее использовать заголовок для выведения разной информации в зависимости от того, откуда пришли посетители.

Общее приветствие

Можно легко вывести URL-адрес из referer в верхней части страницы в общем приветствии:

<script> if(document.referrer) { document.write("<p>Thank you for visiting from " +document.referrer + "</p>"); } </script>

Приветствие пользователей из поисковой системы

Когда кто-то перешел на веб-сайт из поисковой системы, можно без проблем предоставить таким посетителям дополнительной информации, чтобы побудить их дольше оставаться на ресурсе. К примеру, вывести для них ссылку на новостную рассылку веб-сайта:

<script> if(document.referrer) { searchEngine = /google.com/; if(searchEngine.test(document.referrer)) { document.write("<p>Welcome Google visitor!</p>"); } }</script>

Передача информации в формы

Если у вас на веб-сайте есть ссылка, кликнув по которой пользователи могут сообщить о проблемах с ресурсом. Люди часто сообщают о проблемах с веб-страницей без указания URL-адреса, на котором она возникла. Но можно использовать информацию из server http referer, чтобы предположить, о какой проблеме на какой странице идет речь.

Этот скрипт добавляет referer в скрытое поле ввода формы:

<script> function start() {    var ref = document.getElementById('referrer');    ref.value = document.referrer;  }  onload = start;</script><input type="hidden" value="" id="referrer" />

Создание специального предложения для определенных пользователей

Возможно, вы захотите предоставить людям, которые приходят с конкретной страницы, специальное предложение на товары или услуги. C данной целью можно без проблем было бы открыть новое окно, чтобы предложить страницу. Но помните, что людям не нравятся всплывающие окна, поэтому используйте их осторожно:

<script>  if(document.referer == "http://domain/special-offer.htm") {    var newWin = window.open('http://mydomain/special.htm','special');  }</script>

Направление пользователей на другую страницу

Также можно без труда направить людей с определенным HTTP referer на другую страницу. Будьте осторожны, поскольку Google и иные поисковые системы могут расценить это, как введение в заблуждение, и наказать веб-сайт:

<script>  if(document.referrer == "http://domain/redirect") {    location.href = "http://www.newpage.com/";  }</script>

Блокирование посетителей по referer при помощи.htaccess

Если вы страдаете от referer-спама с одного домена, можно без проблем просто заблокировать его на веб-сайте. Если вы используете Apache с установленным mod_rewrite, тогда можно блокировать спам при помощи нескольких строк кода( rewritecond http referrer, запрет входа без referrer ).

Добавьте следующие строки в файл .htaccess :

RewriteEngine on# Options +FollowSymlinksRewriteCond %{HTTP_REFERER} spammer.com [NC]RewriteRule .* - [F]

Измените spammer.com на домен, который необходимо заблокировать. Не забудьте добавить перед периодами в домене.

Не полагайтесь на referer

Помните, что возможна подмена HTTP referer , так что не следует использовать его для важных страниц. Лучше применять его в виде дополнения. Но если страница должна быть доступна только конкретным посетителям, то придется установить для нее пароль через файл htaccess .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *