サイトの移動、または、ページの移動が発生した場合に、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など他の言語の場合でも、記述方法は違えどリダイレクトの際にはレスポンスコードを意識することが重要といえます。
コメントする