« Sphinn Japan Blog | メイン | MTOSで自動再構築 »

2009年10月20日

301リダイレクト

http://www.suzukikenichi.com/blog/に記載の「301リダイレクトの設定方法」より

「ドメインの引越し方法」。

コンテンツは同じで新しいドメインに移行したい場合。

「META Refresh」タグを使い、「移転しました。○秒後にジャンプします」とメッセージがあって自動的に切り替わるページを設定した場合の問題点。

前のドメインが持っていた情報が、新しいドメインに受け継がれない。

例えば、被リンク、PageRank、ドメインエイジなど、その他諸々のサーチエンジンが認識している情報すべて。

当然、サーチエンジンからみると、まったく別のサイトであり、古いドメインのサイトが検索結果で1位だったとしても、新しいドメインのサイトが、1位になることはない。

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

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

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

英語では、「Search Engine Friendly(サーチエンジン・フレンドリー)」な転送という言い方もあり。

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

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

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

※すでにサーバ上に「.htaccess」ファイルがある場合は、そのファイルをダウンロードし追記すればOK。

エディタソフト(Windowsに付属のメモ帳)で次のコードを記述。

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

▲ここまで▲

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

条件があります。

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

かつ、「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」という名前で保存する。

以上で完了です。

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

「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リダイレクトを設定OK。

転送したいファイルに次のように記述して、「.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ヶ月もあれば完全に情報が移動するそう。

.htaccess の中身MEMO

[サイト全体を他のドメインへリダイレクトする場合]
Redirect permanent / http://新ドメイン/
※転送元のトップディレクトリに .htaccessファイルをアップロード

[ディレクトリのURLを変更した場合]
Redirect permanent /seo/ http://www.seo-blogs.biz/search/new/
seoのディレクトリにアクセスした際に、newディレクトリに転送されます。
※seoディレクトリ内に .htaccessファイルをアップロード

[個別ページをディレクトリへリダイレクトする場合]
Redirect permanent /seo/wrodpress01.html http://www.seo-blogs.biz/wp/
Redirect permanent /seo/wrodpress02.html http://www.seo-blogs.biz/wp/
wrodpress01.html とwrodpress02.htmlにアクセスした際に、/wp/に転送されます。
※seoディレクトリ内に .htaccessファイルをアップロード

同一サイト内で飛ばす場合、転送元と転送先に同じディレクトリ名があると、無限ループに陥ってしまうので注意が必要。

.htaccessの「Redirect permanent」の部分は「Redirect 301」でもOK

リダイレクト設定の確認

リダイレクト設定が完了したら、実際に旧URLにアクセスし新URLに飛ばされるかのチェック

301リダイレクトは、View HTTP Request and Response Headerでも確認することができる。Website Explorerでは、サイト全体のリダイレクト状況を確認できる。

リダイレクト設定後おおよそ2~3ヶ月でリンク情報などが新URLへ移動するそう。 リダイレクト設定が有効である期間のみ被リンク効果も有効なので、リンクが引き継がれた後も旧ドメインを破棄してはダメ。