PHPで301リダイレクトをする方法を解説!
PHPで301リダイレクトをする方法をサンプルコードと共に解説します。header関数を使うことで301や302などステータスコードを指定してリダイレクトを行う事が出来ます。
リダイレクトの301と302のステータスコードの違い
リダイレクトの301や302は、HTTPレスポンスステータスコードといって、リクエストが正常に完了したどうかを示し、リダイレクトの目的を明示的に表すものです。
リダイレクトの見た目の違いはありませんが、301は恒久的なリダイレクト、302は一時的なリダイレクトを意味します。
メンテナンス中に一時的にメンテナンスページへリダイレクトする場合は302のステータスコードを設定しますが、WEBサイトの引っ越しの場合にはWEBサーバーを用いて恒久的なリダイレクトを意味する301のステータスコードを設定します。(参考)
Googleなどのクローラーがこのステータスコードを判断し、検索順位に影響を与えます。リダイレクトを行う場合は一時的なのか恒久的なのかを判断して適切なステータスコードを設定します。
PHPで301リダイレクトをする方法
リダイレクトするには様々な方法がありますが、PHPで301リダイレクトをするにはheader
関数を用います。
header
関数ではステータスコードは第三引数で設定します。
301リダイレクト
header('リダイレクト先のURL', true, 301);
header
関数を使って実際にリダイレクトさせたサンプルコードは下記となります。
「RUN」ボタンを押すとリダイレクトされます。
注意として、PHPのheader
関数の前にHTMLの出力がある場合、header
関数が正常に動作しない場合があります。
また、header
関数の記述以降のPHPも継続して動作する為、header
関数の後にはexit
関数をセットで記述するようにしましょう。
