『サイトが移動しました』を出さない方法
サイトにアクセスがあったとき、ページを自動的に移動させる方法として3xx系のレスポンスを返す方法があります。
301 Moved Permanently 302 Found(Moved Temporary)
301は、『サイトは永久に移動しましたよ』という意味です。
302は、『サイトは一時的に移動しましたよ』という意味です。
この場合、Docomo端末では301だと、『サイトが移動しました(301)』のメッセージが出ます。
メッセージを出さずに、自動的にリダイレクトさせるには302のレスポンスを使用します。
301と302のサーチエンジン(検索エンジン)の挙動
Yahoo! Inc.のガイドラインでは次のようになります。
レスポンスコード | リダイレクト元 | リダイレクト先 | インデックス登録されるURL |
---|---|---|---|
301 | example.com | 別ドメイン example.net | リダイレクト先 example.net |
302 | example.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)と判断されると言われています。
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(); ?>
関連記事
- PHP
- forとforeachの速度比較
- Firefox、Chromeなどで文字化けを防ぐ方法 ヘッダー情報に文字コードを指定
- PHPのバージョン表記の隠蔽
- Twitter APIを使用する (Twitterアプリケーション登録)
- PukiWiki
- Drupal(ドルーパル)
- OpenPNE
- Apacheで所有権や書き込み権限があるにも関わらずPermissions deniedが出る場合
- 携帯電話端末の判別ライブラリ Net_UserAgent_Mobile
- Movable Type
- mailtoの使い方
- 複雑なExcelファイルをプログラムで作成する方法
- HEADリクエストを排除してサーバ負荷を軽減させる
- PHPをコマンドラインから使用する方法
- stdClassクラスとは
- EC-CUBE
- echoしても文字は表示されないのに、emptyがtrueにならない
- PEAR・PECLをインストールする方法
- Live Commerceとは
- EC-CUBE2系で商品を大量にカートに入れると注文情報が抜けたりカートが消えたりする
- SJISじゃなくてSJIS-win、EUC-JPじゃなくてeucJP-winを使おう
- 住所や駅名などから緯度経度を取得する
- PHPのPEARは2019年に改ざんされたことがあります
- PCやスマホがネットワーク内にあるかどうかを調べる(在宅かどうかの判断)
- PHPでMySQLなどにPDO接続をすると、could not find driverのエラーが出る場合
- クラスとオブジェクト
スポンサーリンク