WEB/システム/IT技術ブログ

サイト・ページ移転時にPHPで正しくリダイレクトする

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

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

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

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

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

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

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

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

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

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

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

B!

Comment

コメントはありません

コメントする

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

Monthly Archives