2013-10-07 3 views
0

Я хочу разрешить трафик на мой сайт только с определенного URL-адреса, например «example.com/123». Я хочу, чтобы остальная часть трафика была перенаправлена ​​на тот же URL-адрес ссылки после определенной задержки, скажем, 1 или 2 минуты. Я хочу, чтобы трафик , который исходит из example.com/123, больше не упоминается.Как перенаправить и/или задержать в зависимости от реферера?

Я думал использовать что-то вроде этого, но я не имею понятия, как изменить для удовлетворения моих требований:

<?php 
$referrer = $_SERVER['HTTP_REFERER']; 
if (preg_match("/site1.com/",$referrer)) { 
     header('Location: http://www.customercare.com/page-site1.html'); 
} elseif (preg_match("/site2.com/",$referrer)) { 
     header('Location: http://www.customercare.com/page-site2.html'); 
} else { 
     header('Location: http://www.customercare.com/home-page.html'); 
}; 
?> 

ответ

0

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

Таким образом, в части сценария, который генерирует заголовок вашей страницы, вам нужно что-то вроде этого:

<!-- this is the header of your page --> 
<head> 
    <title>Your Title</title> 
    <?php 
    $referrer = $_SERVER['HTTP_REFERER']; 

    // if referer isn't from example.com/123 we setup a redirect 
    if (!strstr($referrer, '://example.com/123')) 
     print ('<META HTTP-EQUIV=Refresh CONTENT="60; URL=http://example.com/123">\n'); 

    ?> 
    <!-- maybe some other stuff --> 
</head> 

Так что, если реферер не от http://example.com/123, то эта строка будет вставлена в заголовке:

<META HTTP-EQUIV=Refresh CONTENT="60; URL=http://example.com/123"> 

, который сообщает браузеру, чтобы перенаправить к URL (в данном случае http://example.com/123) через 60 секунд.

Смежные вопросы