2012-03-06 16 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

私のサイトに301を使用しているウェブサイトのURLがわかっています。 – Ma9ic

+0

'$ _SERVER ['HTTP_REFERER'];'は使用しないでください。 PHPのドキュメントでさえ、それは体系的に信頼されていないと言います。 – hohner

0

あまりできません。あなたが301をやっていたなら、あなたは照会者を照会の文字列に設定することができます。しかし、あなたがいないので、あなたは要求があなたに与えたものをつかむことができます。

0

PHPの$_SERVER['HTTP_REFERER']を使用して、訪問者の出所からのソースURLをトラッキングできます。私はそれが少しばかげていると思うし、すべてのブラウザで同じ結果をもたらさないかもしれない。 PHP's documentationでも「本当に信頼できない」と言われています。

なぜリダイレクトに.htaccessを使用する必要がありますか?

サイトAさんのindex.php:

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

サイトBさんのindex.php:

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

編集:

あなたができない場合は、このような何かを行うことができますサイトAのコードまたはサーバーの設定を編集してください:

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

私は301のリダイレクトを設定していないので、他の誰かが自分のサイトを指し示す必要があるので、入力したURLが「公式のもの」ではないことを基本的に知らせたいと考えます。 – Ma9ic

+0

質問を編集しました – hohner

+0

試み\t Ma9ic

関連する問題