サイトリニューアル時に設定すべきこと(301リダイレクト)

2014年12月1日
Pocket

サイトをリニューアルするとき、どのような手法をとっているでしょうか。何も対処せずにWebページのURLが変更されると、せっかくGoogleやYahooなどの検索エンジンの登録やユーザーにブックマークされた内容が無駄になってしまいます。
そんなときサーバーに設定すべきなのが、301リダイレクトです。301リダイレクトとは、RFCで定義されたHTTPステータスコードの1つで”Moved Permanently”、つまりWebページの永続的な移動を意味します。

301リダイレクト

301リダイレクト

301リダイレクトは、サーバーがブラウザに返すステータスです。ブラウザはサーバーから301リダイレクトの結果を受け取ると、自動的にその結果に含まれるURLへアクセスします。
GoogleやYahooの検索エンジンも同じ動きをするようです。保証されている訳ではありませんが、この仕掛けでSEO効果も引き継がれるはずです。実際にGoogleも公式のWebページでURLの変更時は301リダイレクトの使用を勧めています。
設定は簡単です。サーバーでApacheを使っている場合は、ドキュメントルートに.htaccessのテキストファイルを配置します。.htaccessには、1ファイルの移転に対して1行ずつ記述します。例えば次のような具合です。

redirect 301 /cfplus/security/ http://www.cmpd.jp/apps/point.html

空白で区切られた3つめのワードが移転元のWebページ。http://ドメイン名/を除いたものを記述します。4つ目のワードが移転先のWebページ。ドメインは違ってもかまいません。
上記は実際に私たちのWebサイトに登録されています。次のリンクにアクセスしてみてください。すぐにブラウザのURL表示がwww.cmpd.jpのドメイン下のURLに書き換わることが確認できます。

http://www.componentdesign.co.jp/cfplus/security/

上記は見えているとおりのURLにアクセスするリンクですが、サーバーが301リダイレクトを返します。最終的にブラウザに表示されるURLはhttp://www.cmpd.jp/apps/point.htmlです。

ディレクトリを指定した場合は、その下の全てのディレクトリ・ファイルが移転扱いになります。移転先は.htaccessの上から下に向かってサーチが行われ、該当の行が見つかったところで決定扱いになりますので、ディレクトリ内で例外がある場合は例外を先に記述することで上手く機能します。

ドメインごと移転する場合で、同一サーバーに仮想ドメインが含まれる場合は注意が必要です。
例えば、弊社のwww.componentdesign.co.jpのドメインは、リニューアルに伴いwww.cmpd.jpに移転したのですが、このとき次のような設定を行うと、同一サーバーに含まれる仮想ドメインも移転した扱いになってしまいます。

redirect 301 / http://www.cmpd.jp/

これを防ぐには、RewriteCond、RewriteRuleを記述し、リクエストにドメインが指定されていることを条件に指定します。例えば次のように記述します。

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.componentdesign\.co\.jp$
RewriteRule ^$ http://www.cmpd.jp/ [R=301,L]

ホームページ等のサイトをリニューアルするときは是非この301リダイレクトを設定してください。1ページあたりのSEO効果やユーザーのブックマークは長期間に渡って築いたものですので、設定すべき作業であることが理解できるかと思います。

Pocket