「リダイレクト」という言葉でまず思い浮かぶのは、「.htaccess」ファイルを使用した方法です。
ただ、レンタルサーバーなどでは、この .htaccess ファイルが使えなかったり機能を制限していたりするため、別の方法を準備しなければなりません。
そんなときに、次の候補として挙がるのが PHP によるリダイレクトです。
もちろん .htaccess のようにサーバー全体へ設定することはできないので、対象となるファイル(ページ)全てに反映していく必要があります。
そういう意味で使い勝手はあまり良くないのですが、まぁ、無いよりはマシってことで……。
(逆に、特定のページだけをリダイレクトしたい場合には、こちらの方が楽だったりします)
PHP によるリダイレクト方法
以下の内容を、リダイレクト元となるページのソースに書き込んでください。
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.hogehoge.com/");
exit();
?>
まず、「header("HTTP/1.1 301 Moved Permanently");」で「301 リダイレクト」であることを設定します。
次に、「header("Location: http://www.hogehoge.com/");」で移転先の URL を設定。
実はこの URL 設定の1行だけでもリダイレクトはされるのですが、ステータスが 302 (一時的な移転)になってしまうとのこと。
恒久的な移転である場合は、ステータスを 301 に設定することをお忘れなく。
そして最後に、「exit();」で PHP の処理を終了します。
正直なところ、この 1 行が本当に必要なのか、よく分かっていません。
実際、PHP によるリダイレクトの方法を紹介しているブログなどでも、この 1 行は書かれていない方が大半です。
ただ、以前に一度だけ、上記の 2 行だけでは正常に処理されず画面が真っ白になり、「exit();」を追加したら改善した、というケースがありました。
それ以来、とりあえず入れるようにしています。
最初は 2 行だけにしておいて、うまく動かなければ「exit();」を付け足してみる、という使い方でも良いかも知れません。
【おまけ】HTML の meta タグによるリダイレクト(?)方法について
<head>~</head>に以下を記述することで、リダイレクト(のようなこと)ができます。
<meta http-equiv="Refresh" content="0; URL=http://hogehoge.com/" />
ただ、これは厳密に言うとリダイレクトではありません。
この処理がされたとき、Yahoo! や Google といった検索エンジンが「リダイレクトであると見なす」というだけのことです。
Yahoo! ではこの処理をリダイレクトとして扱うことを明言していますが、Google からの公式なアナウンスはありません(以前に中の人がしていた発言はあるみたいですが)。
いずれにしろ、この方法も今はリダイレクトとして扱われていますが、検索エンジン側が「明日からリダイレクトじゃないよ。単なる転送だよ」と言ってしまえばそれまでな訳です。
なので、可能な限り .htaccess を使い、それがダメなら PHP を使い、それでもダメなら最終手段として meta タグを使う、というくらいの意識でいた方が良いと思われます。