Posted by : okolya in (SEO, Советы и трюки)

Перенаправление трафика в зависимости от источника

Tagged Under : , ,

Часто возникает необходимость перенаправить пользователя сайта в зависимости от того, откуда он пришел. Например, человек пришел по ссылке на страницу из поискового сервиса и ему нужно дать более полную информацию, чем если бы он пришел на страницу с по ссылке с того же сайта. проверить источник откуда пришел посетитель позволяет серверная переменная $_SERVER['HTTP_REFERER'].

И тут пришла засада. MS Internet Explorer (v.6) не поддерживает эту переменную. Значения $_SERVER['HTTP_REFERER'] в MSIE просто нет. На помощь приходит JavaScript. С помощью JavaScript можно определить значение document.referrer. Ниже приведен код функции, которая позволяет корректно перенаправить трафик во всех броузерах, включая IE.

function redirectFun(){
$javascript = '';
if(parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST) == $_SERVER['HTTP_HOST']){
//Nothing
}
else{//redirect
if($_GET['tx_ttproducts_pi1']['product']){
$redirect_url = 'http://google.com';

if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")){
$javascript = '<script type="text/javascript"><!--
                  if(document.referrer){
                    document.location = "'
.$redirect_url.'";
                  }
// --></script>'
;
}
else{
header('Connection: close');
header( "HTTP/1.1 301 Moved Permanently" );
header('Location: '.$redirect_url);
exit;
}
}
}
return $javascript;
}