301リダイレクトの設定方法

・メルマガ #107(2007/11/04発行)のバックナンバー
※一部修正

今日は、「ドメインの引越し方法」について解説します。

海外のSEOフォーラムでは、しばしば質問されるトピックです。

コンテンツは同じなんだけど、新しいドメインに移行したいなんていう場合がありますよね。

ネットショップを経営していて、お店の名前が変わったとか、「co.jp」ドメインだったけど「.com」ドメインのほうがグローバルなイメージがあって、格好いいとか。

他には、一時期大ブームになった日本語ドメインでサイトを作ったけどブームが去った今は覚えづらいだけだから、普通のドメイン名に戻したいとか。

そんな時、よくあるのは、「移転しました。○秒後にジャンプします」とメッセージがあって自動的に切り替わるページです。

「META Refresh」タグを使ってます。

でも、これには問題があります。

どんな問題かというと、前のドメインが持っていた情報が、新しいドメインに受け継がれません。

「情報」っていうのは、被リンクだったり、PageRankだったりドメインエイジだったり、その他諸々のサーチエンジンが認識している情報です。

当然、古いドメインのサイトが検索結果で1位だったとしても、新しいドメインのサイトが、1位になることはありません。

サーチエンジンからしたら、まったく別のサイトです。

そこでどうするかというと、サーチエンジンに「ドメインを引っ越しましたよ」と教える手法を使います。

301 Redirect(サンマルイチ・リダイレクト)」と言われる転送方法です。

ウェブページ閲覧のための、「HTTPプロトコル」という規格で正式に定められた方式です。

GoogleもYahoo!も、ドメイン移行の場合には「301リダイレクト」を推奨しています。

英語では、「Search Engine Friendly(サーチエンジン・フレンドリー)」な転送なんて言い方もします。

では、「301リダイレクト」の具体的な設定手順です。

方法はいくつかありますが、いちばんポピュラーなのを取り上げます。

.htaccess(ドット・エイチ・ティー・アクセス)」というファイルを利用する方法です。

変な名前だけど、作るのは簡単です。

エディタソフト(Windowsに付属のメモ帳)を開いて次のコードを記述してください。

▼ここから▼
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]

▲ここまで▲

「www.newdomain.com」を、新しいドメイン名(転送先)に入れ替えます。

条件があります。

Apache(アパッチ)というウェブサーバーで、利用できます。

かつ、「Mod-Rewrite」という機能をサポートしている必要があります。

ほとんどのレンタルサーバーは、Apacheを使っていて、Mod-Rewriteをサポートしています。
(ロリポ、XREA、Xサーバーは、OKでした)

サーバーソフトは、あなたが利用しているサービスの仕様に書いてあります。
確認してみてください。

もし、Mod-Rewriteをサポートしていなかったらこちらの記述でもOKです。

▼ここから▼
Redirect 301 / http://www.newdomain.com/
▲ここまで▲

「www.newdomain.com」を、新しいドメイン名に入れ替えます。
「/」はトップページからのパスなので、「www.olddomain.com/abc/」の中を転送したければ、「/abc/」と記述します。

メモ帳に、いずれかを記述したら「.htaccess」という名前で保存してください。

ただ、Windowsは「.(ドット)」の前に何もないとファイルの保存ができません。

なので、とりあえず「a.htaccess」としておきます。
(「a」は適当に)

そして、作成した「a.htaccess」ファイルを「古いドメイン(移行元)」の「ルートディレクトリ」に、FTPでアップロードします。

「ルートディレクトリ」っというのは、いちばん上のフォルダです。
「http://www.abc.com/」でアクセスしたときに表示するファイルを入れておくフォルダです。

最後に、「a.htaccess」を本来の正しい名前に戻します。

アップロード後に、「a」を消して、「.htaccess」だけにしましょう。
※「.(ドット)」も一緒に取らないように注意してください。

以上で完了です。

うまくいってるかどうか、古いドメインにアクセスして、新しいドメインに、自動的に転送されるか確認してみましょう。

「301リダイレクト」が正常に機能しているかチェックするツールもあります。
Search Engine Friendly Redirect Checker

新しいドメインのサイトのディレクトリ構造(フォルダの作り方)は、古いドメインのサイトと同じにしておいてください。

301リダイレクトを使うと、「wwwあり」と「wwwなし」に分かれてしまったURLを、統一することもできます。

「Mod-Rewrite」をサポートしているとき。

▼ここから▼
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^yourdomain\.com
RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [R=permanent,L]

▲ここまで▲

3行目の「yourdomain.com」は「wwwなし」のドメイン名。
「.(ドット)」の前に「\(バックスラッシュ)」が入ります。
※日本語ではコンピュータの言語環境によって「¥(円マーク)」になります。

4行目の「www.youdomain.com」は、「wwwあり」のドメイン名です。

「Mod-Rewrite」をサポートしていない場合は、こちらで。

▼ここから▼
Redirect 301 / http://www.yourdomain.com/
▲ここまで▲

ただし、「wwwあり」と「wwwなし」を301リダイレクトで統一すると、「ループ」が発生する場合もあるらしいので、注意してください。

Googleの場合は、Google ウェブマスターツールを使うと、こんなことをしなくても、簡単に統一できます。

最後におまけです。

「.html(.htm)」じゃなくて「.php」でファイルを作っているときは、PHPという「スクリプト言語」で、301リダイレクトを設定できます。

転送したいファイルに次のように記述して、「.php」で保存します。

▼ここから▼
<?
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: http://www.anotherdomain.com/abc.html" );
?>

▲ここまで▲

「http://www.anotherdomain.com/abc.html」は、転送先ページのURLです。

海外のフォーラムやサイトで、実際に実行した事例を見ると、「301リダイレクト」を利用すると検索結果やPageRankは、上手に新しいドメインに引き継がれるようです。

特にGoogleは、安心できそうです。
だいたい2から3ヶ月もあれば完全に情報が移動するみたいですね。
(Goolgeは、2、3週間と言ってますが)

ドメイン移転の際には、必ず利用してください。