サイトのお引越しやメンテナンスなどで、サイト全体を特定のURLへとリダイレクトしたい時は、mod_rewriteモジュールを使うのが楽です。
例えば、以下のように記述すれば、old-domain.comへのアクセスはすべてnew-domain.comへと転送されます。
RewriteEngine on RewriteCond %{HTTP_HOST} ^(old-domain.com)(:80)? [NC] RewriteRule ^(.*) http://new-domain.com/$1 [R=301,L]
しかし、必ずしも利用しているサーバーでmod_rewriteモジュールが使えるとも限りません。
つい最近、クライアントのサイトで、メンテナンスのために別サイトのURLへ一時的にリダイレクトしたかったのですが、利用しているサーバーでmod_rewriteモジュールが使えませんでした。その時に有効だった記述方法を紹介したいと思います。
.htaccessで全ページを特定のURLへ転送する
mod_rewriteモジュールが使えない環境で全ページを特定のURLへ転送するには、.htaccessで以下のように記述します。
RedirectMatch 301 .* http://new-domain.com/
この.htaccessを設置したサイトは、すべてのページがnew-domain.comへリダイレクトされるようになります。「http://new-domain.com/」の部分は転送先のURLに変更してください。「http://new-domain.com/subdir/」のように、トップページじゃなくても大丈夫です。
上記は301リダイレクト(恒久的な転送)ですが、301を302に変更することで、一時的な転送も可能です。
RedirectMatch 302 .* http://new-domain.com/
このように記述することで、無事全ページを別サイトのURLへ転送することができました。
あとがき
上記の方法でもダメな場合は、meta refreshを使いましょう。
<meta http-equiv="refresh" content="0;URL=http://new-domain.com">
HTMLの<head>~</head>内に上記を記述することで、アクセスするとnew-domain.comに転送されます。0の部分は秒数で、例えば3を指定すると3秒後にページが切り替わります。