HTTPリダイレクトとは
HTTPのリダイレクトは、ブラウザなどのクライアント側が要求したリソースが、どこか別の場所に存在することをクライアント側に知らせるために使用されるステータスコードです。
リダイレクトのステータスコードを受けたクライアントのブラウザは、Location:ヘッダーで指定された新しいURLにリダイレクトをされます。
HTTPリダイレクトコードの種類
HTTPのリダイレクトには301、302、307などのリダイレクトコードがあります。
HTTPヘッダにあるHTTPステータスコードにてリダイレクトの種類を伝え、Location:ヘッダで移動先を伝える。種類には301 Moved Permanently(恒久的な移転)や302 Found(発見)などがある。Webサーバの設定ファイル(Apacheの場合、httpd.confファイルや.htaccessファイル)や、CGIなどで指定できる。
リダイレクト(HTTP)- Wiki
リダイレクトコードを簡単に説明をすると以下となります。
リダイレクトの種類 | リダイレクトの簡単な説明 |
---|---|
301リダイレクト | 恒久的なリダイレクト |
302リダイレクト | 一時的なリダイレクト |
307リダイレクト | 一時的なリダイレクト リダイレクト先にはリダイレクト元(GET/POST)も引き継ぐ |
ステータスコード301は恒久的な移転(Moved Permanently)となり、302(307)はTemporary Redirectということで一時的な移転として扱われます。
クリックランキングプログラムからの転送
dtn.jpではカテゴリ登録サイト向けにクリックランキング、アクセスランキングを実施しています。
ランキングカウント用PHPでは、$_GET、$_POSTのデータからリンクIDを抜き出し、ランキングカウントテーブルにトランデータを反映させた後、登録サイトのURLにリダイレクトをしておりました。
ところが、ステータスコードを指定せずにリダイレクトをすると、302(307)の一時的なリダイレクトと認識されてしまうため、SEO的にはあまり良くないことになってしまいます。
そこで、ランキングデータ集計プログラム後のリダイレクトをする際に、301ステータスコードを入れるようにしました。
$LINK = "https://www.yahoo.co.jp/";
header('Location: ' . $LINK, true, 301);
まとめ
新しいランキングプログラムは、301リダイレクトが有効となったので、ウェブサイト転送時にもリンク価値を保護することができました。
お持ちのサイトでリダイレクトを設定されている方は、リダイレクト時のステータスコードにも是非ご注意下さい。