『サイトが移動しました』を出さない方法

サイトにアクセスがあったとき、ページを自動的に移動させる方法として3xx系のレスポンスを返す方法があります。

301 Moved Permanently
302 Found(Moved Temporary)

301は、『サイトは永久に移動しましたよ』という意味です。
302は、『サイトは一時的に移動しましたよ』という意味です。

この場合、Docomo端末では301だと、『サイトが移動しました(301)』のメッセージが出ます。

メッセージを出さずに、自動的にリダイレクトさせるには302のレスポンスを使用します。

301と302のサーチエンジン(検索エンジン)の挙動

Yahoo! Inc.のガイドラインでは次のようになります。

レスポンスコードリダイレクト元リダイレクト先インデックス登録されるURL
301example.com別ドメイン
example.net
リダイレクト先
example.net
302example.com別ドメイン
example.net
リダイレクト先
example.net
301ドメイントップレベル
example.com
同一ドメインの下層ページ
example.com/hoge.html
リダイレクト元
example.com
301ドメイン下層ページ
example.com/hoge.html
同一ドメインの下層ページ
example.com/foo.html
リダイレクト先
example.com/foo.html
302ドメイン下層ページ
example.com/hoge.html
同一ドメインの下層ページ
example.com/foo.html
リダイレクト元
example.com/hoge.html

metaタグでのページ遷移(メタリフレッシュ)は、『200 OK』のレスポンスですが、検索エンジンの判断は、 即時にリダイレクトするように設定している場合は301、リダイレクト開始まで一定の時間を設定している場合は302として扱われます。

<meta http-equiv="refresh" content="0;url=http://example.com/">

一般的に、リダイレクト時間が0または1の時は301 Moved Permanentlyとして扱われ、2以上の時は302 Found (Moved Temporarily)と判断されると言われています。

Yahoo! ヘルプ - サイト管理者向け

PHPでの記述

301レスポンス

<?php
  header("HTTP/1.1 301 Moved Permanently");
  header("Location: 【遷移先URL】");
  exit();
?>

302レスポンス

<?php
  header("HTTP/1.1 302 Found(Moved Temporary)");
  header("Location: 【遷移先URL】");
  exit();
?>

関連記事

スポンサーリンク

Firefoxでパスワードを保存するときの注意

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る