スマートフォンやhtml5+CSS3など新技術に四苦八苦。jQuery、AjaxなどJavaScriptも難しいですね。そんなWebに悩む人のネタ帳です。

サイトの移動、または、ページの移動が発生した場合に、PHPのheader関数を使って旧URLから新URLへリダイレクトさせるのはよく使う方法ですが、改めて使い方を確認します。

例えば新サイト「http://helog.jp/」へリダイレクトさせる場合、私はこれまで以下のように処理を書いていました。

header("Location: http://helog.jp/"); 

実際アクセスするとリダイレクトされるので、一見、問題ないように思います。
しかし、上記のままでは302リダイレクトとして処理されてしまいます。302は一時的に移動した場合に用いられ、Googleなど検索エンジンは旧サイトのURLを残してしまいます。

301リダイレクトとして恒久的に移動、つまり、検索エンジンなどに新URLをインデックスしてもらうためには、以下のようにします。

header("HTTP/1.1 301 Moved Permanently"); 
header("Location: http://helog.jp/"); 

また、header関数では同一の処理を以下のようにして1行で記述することもできるようです。

header("Location: http://helog.jp/", true, 301); 

HTMLのMETA情報にリダイレクトを実行する以下の1行を埋め込む方法もありますが、PHPで処理するにあたりあまりスマートではない上に、場合によってはスパム扱いされることがあるようなので、場面に応じては使用しないほうがよいでしょう。

<?php if(x == y){ ?>
<meta http-equiv="refresh" content="0; url=http://helog.jp/">
<?php } ?>

今回はPHPの例でしたが、JAVAなど他の言語の場合でも、記述方法は違えどリダイレクトの際にはレスポンスコードを意識することが重要といえます。

このエントリーをはてなブックマークに追加

Comment

Comment Form

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Monthly Archives

Search