リダイレクトの種類

サイトの引越しや一時的な転送などでリダイレクトを行う場合は、以下の3つのいずれかを使うのが一般的です。.htaccessでリダイレクトをかけるのが基本的な方法なので、引越しの場合は301、一時的な転送は302を使用します。.htaccessが使えない無料のサーバーなどの場合は、HTMLのhead内にコードを記述して転送するmeta refreshを使います。

301リダイレクト
サイトの引越しやURLが変更になった場合など”永久的な転送”の際に使う。
302リダイレクト
何かしらの理由で”一時的な転送”の際に使う。
meta refresh
.htaccessが使えない無料レンタルサーバスペースなどの場合は、このmeta refreshを使う。

リダイレクトの方法

301リダイレクト

サイトを移転引越ししたら必須の”GoogleやYahooからも推奨されている”リダイレクト方法。.htaccess、Javascript、PHPで行う方法がありますが、ここでは一般的な.htaccessでの転送方法を紹介します。

サイトを引越した場合

旧ドメインサイトと新ドメインサイトでフォルダやファイル名は変わらず、ドメインだけが変更になる場合は、以下のように記述。これで旧ドメインサイトの各ページから新ドメインサイトの各ページへ自動で転送してくれる。以下は、「旧ドメイン.com」から「新ドメイン.com」へ移転した場合の例。旧ドメインと新ドメインで「http」の表記が異なるので注意。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{http_host} ^www.旧ドメイン.com
RewriteRule ^(.*) http://www.新ドメイン.com/$1 [R=301,L]
</IfModule>

旧ドメインサイトのどのページにアクセスしても、新ドメインサイトのTOPページへ転送させる場合は以下のように記述。aaa

<IfModule mod_rewrite.c>
RedirectMatch 301 .* http://新ドメイン.com/
</IfModule>

特定のディレクトリを特定のディレクトリへ転送したい場合

例えば「/aaa」から「新ドメイン.com/bbb」というディレクトリへ変更した場合、以下のように記述することで「aaa」の各ページから「bbb」の各ページへ自動転送してくれる。

<IfModule mod_rewrite.c>
Redirect 301 /aaa/ http://www.新ドメイン.com/bbb/
</IfModule>

特定のページを特定のページへ転送したい場合

例えば「aaa.html」から「bbb.html」に転送したい場合は以下のように記述する。

<IfModule mod_rewrite.c>
Redirect 301 /aaa.html http://www.example.com/bbb.html
</IfModule>

302リダイレクト

一時的に特定URLへ転送をかけたい場合は以下のように記述する。

<IfModule mod_rewrite.c>
Redirect 302 /shop/ http://www.example.com/sale/shop/
</IfModule>

meta refresh

無料サーバーをレンタルしてる場合などはhtaccessが使えなかったりPHPが使えなかったりします。そういう場合は、Javascriptでの転送方法もあるのですが、head内に記述するだけで転送が行えるmeta refreshのほうがスムーズです。記述は以下の通り。

<head>
<link rel=”canonical” href=”http://転送先のURL”>
<meta http-equiv="refresh" content="3; URL="http://転送先のURL">
</head>

content=3の部分は転送するまでの秒数です。これを0にすると301リダイレクトと同じような挙動になるのですが、Googleの検索エンジンの部門に携わるマット・カッツ氏は0秒でのmeta refreshは推奨していないのでやめておいたほうがいいです。

また、meta refreshを行う際はページ内に「移転しました。このページは○秒後に新しいURLへジャンプします」の説明文と万が一転送できなかった場合に備えて新ページへのリンクを設置、それとrel=”canonicalでURL正規化することが必要になります。

rel=”canonicalとは、同じような内容の(重複する)コンテンツが存在する場合、優先的に検索結果に表示させたいページを指定する手段です。新旧ページで同じページが存在するので、「新しい転送先のURLが正規のページですよ」と伝えておかないと、スパム扱いされてしまう可能性があるのでご注意を。

設定が完了したらアクセスして確認

設定を行ったら、正しく転送が行えるかを確認しましょう。