【PHP】リダイレクト
PHPでリダイレクトをしたいということがあると思います。
本来は「.htaccess」ファイルでリダイレクトさせるのが早いのですが、何らかの条件下でリダイレクトをしたいという時はPHPでリダイレクトをしたいと思うことがあります。
まずは、基本形
<?php header('Location: http://www.○○○○○○.com/'); exit; ?>
これで、「http://www.○○○○○○.com/」にリダイレクトします。
注意点は、このheaderよりも前に何らかの出力があると環境によってはリダイレクトせずエラーになります。
エラーは
Warning: Cannot modify header information - headers already sent
こんな感じです。
また、Location後のURLは絶対パスで記述したほうがよいでしょう。
相対パスでも処理をするブラウザがありますが、相対パスが上手く認識できないブラウザもあるそうです。
上記の場合は302コードを返します。
もし、ステータスコードを変更したい場合は、
<?php header("HTTP/1.1 301 Moved Permanently"); header('Location: http://www.○○○○○○.com/'); exit; ?>
とします。
501などの時も同様です。(コメント部分は変わります。)
尚、「exit;」はクローラなどでheaderを無視してそのページを読み込もうとするものもあるそうなので必ず入れましょう。