2012-03-06 4 views
0

сайт использовал «постоянный переадресацию 301» на мой сайт, есть ли способ, которым я могу установить код, который обнаруживает это, и отображает страницу, когда через мой сайт можно получить доступ через это?301 Постоянный переадресация

У кого-нибудь есть представление об этом?

+1

Какой у вас язык на стороне сервера? – ManseUK

+1

Нет. Ваш сайт будет видеть когда-либо запрос «GET» из клиентского браузера. Перенаправление 301 выполняется непосредственно между этим другим сайтом и браузером клиента и никогда не появится на вашем собственном сайте. –

+0

Если вы хотите отобразить определенную страницу для перенаправления 301, почему бы не просто указать перенаправление 301 на эту страницу? – JaredPar

ответ

1

Вы можете получить только референт. Я думаю, вы не сможете получить код статуса http на сервере, который клиент получает во время последнего запроса.

Итак, мой ответ НЕТ, вы не можете получить код статуса 301 на своем сервере.

Но вы можете сделать немного необходимой магии с переменной referer.

например. в PHP вы можете прочитать это:

$_SERVER['HTTP_REFERER']; 
+0

В 301 перенаправление Referer не передается –

+0

Я знаю URL-адреса сайтов, которые используют 301 на моем сайте, если это помогает? – Ma9ic

+0

Не используйте '$ _SERVER ['HTTP_REFERER'];'. Даже документация PHP говорит, что ее невозможно систематически доверять. – hohner

0

Не так много вы можете сделать. Если вы делали 301, вы можете настроить реферер на запрос. Но так как вы этого не сделали, вы можете только получить то, что вам дал запрос.

0

Вы можете попробовать использовать PHP $_SERVER['HTTP_REFERER'] для отслеживания исходного URL-адреса, откуда приходит ваш посетитель. Я думаю, что это немного хитроумно, и, возможно, не даст такой же результат во всех браузерах. Даже PHP's documentation говорит, что «на это нельзя доверять».

Почему вы должны использовать .htaccess для перенаправления? Вы могли бы сделать что-то вроде этого:

сайта index.php A в:

header("Location: http://siteb.com/?ref=".urlencode('http://sitea.com'); 

сайта index.php Б:

if(isset($_GET['ref'])) 
{ 
    if($_GET['ref']=='http://sitea.com') 
    { 
     // Do something 
    } 
} 

Edit:

Если вы не можете отредактируйте код или сервер сайта A, попробуйте использовать:

if($_SERVER['HTTP_REFERER']=='http://sitea.com') 
{ 
    // Do something 
} 
+0

Я не настроил перенаправление 301, кто-то еще должен указать на мой сайт, поэтому я хотел бы в основном сообщить им, что введенный им URL не является «официальным», так сказать, – Ma9ic

+0

Я отредактировал вопрос – hohner

+0

i пытался \t Ma9ic

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