いま復習しておきたい、301リダイレクトの設定あれこれ。

いま復習しておきたい301リダイレクトの設定あれこれ。

気づけば毎回検索してる!リダイレクトの設定あれこれ。

サイトリニューアル時やドメイン変更など、URLの構成が変わった際には不可欠な301リダイレクト。設定せずそのまま放っておくと被リンクやドメインエイジを引き継げないだけでなく、Googleなど検索エンジンにインデックスされていたページも、リンク切れでたどり着けなくなってしまいます。

そのほかにもURL正規化に不可欠な、サイトURLのwwwあり・なしや、index.htmlあり・なしの統一にも使われます。そんな結構重要なリダイレクトですが、気づけば.htaccessの書き方を毎回調べている気がする…。というわけで301リダイレクトの設定を、覚書きとして残しておきたいと思います。

Sponsored Link

リダイレクトの基本をおさらい。

改めて301リダイレクトとは。

改めて301リダイレクトとは。
301リダイレクトとは、ステータスコード301(恒久的な移転の意)をサーバーから返して、元のURLにはもう何もないので、こっちの新しいURL見てね、ということを伝える方法です。ちなみに302 は一時的な移転の際に使用されます。メンテとかですね。

そしてステータスコードというのは、サーバーからのレスポンスを表現する3桁の数字コードです。404(未検出/見つかりません)なんかは割とよく目にしますよね。

301リダイレクト:ステータスコード301を用いて行なうHTTPリダイレクト。“Moved Permanently”(恒久的に移転)を意味し、リクエストされたURLは新しいURLに恒久的に移転し、元のURLはもはや無効であることを表す。WebサイトやWebページの移転などの際に用いられる。HTTPリダイレクトとは – IT用語辞典

改めて.htaccessとは。

.htaccessというのは、Apacheサーバーにおいてディレクトリ単位で設置できる設定ファイルです。
そもそものサーバー設定はhttpd.conf において指定されていますが、これは管理者にしか変更できません。そこでレンタルサーバーなどでは、ディレクトリごとに.htaccessファイルを設置して設定を上書きできるようになっています。ただし一部、.htaccessによる上書きを禁止しているサーバーもあります。その場合、管理画面から設定を行える場合が多いです。

# Redirect
Redirect permanent / http://www.NewDomain.com

# Redirect
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.OldDomain\.com
RewriteRule ^/(.*) http://www.NewDomain.com/$1 [R=301,L]

この二通りの書き方はどちらも同じ働きをします。違いはmod_rewrite(拡張機能)を利用するか否かです。mod_rewrite を利用すれば、正規表現を使い複雑な条件でリダイレクトさせることができます。

mod_rewrite機能を利用できないサーバーでは、RewriteEngine on から始まる書き方は使用できません。この機能が入っているか否かは、利用しているサーバー会社のよくある質問などに記載されています。

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

具体的な設定方法を解説していきます。

.htaccessで設定する場合。

ドメイン移転の場合

# Redirect
Redirect permanent / http://www.NewDomain.com

下層のディレクトリ構造がすべて同じ場合は、これでリダイレクトされます。

ページURLの変更の場合(個別)

# Redirect
Redirect permanent /company/index.html http://www.SiteURL.com/company.html

後に続く新しいURLは、絶対URLで指定してください。

ページURLの変更の場合(複数)

# Redirect
Redirect permanent /product/ http://www.SiteURL.com/items/

下層のページURLが同じ場合、これでリダイレクトされます。

http://www.SiteURL.com/product/p001.html にアクセスした場合、
http://www.SiteURL.com/items/p001.html に転送されます。

wwwのあり・なしを統一する場合

WordPressの場合、設定のサイトアドレス (URL) で簡単に設定できます。
またサーバーによっては管理画面上で設定できるものもあります。

wwwありに統一
# Redirect
RewriteEngine on
RewriteCond %{HTTP_HOST} ^SiteURL\.com
RewriteRule ^/(.*) http://www.SiteURL.com/$1 [R=301,L]
wwwなしに統一
# Redirect
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.SiteURL\.com
RewriteRule ^/(.*) http://SiteURL.com/$1 [R=301,L]

これでどちらかに統一することができます。

Search Consoleで優先するバージョンを選択する
あわせてSearch Console(旧ウェブマスターツール)に両バージョンのURLを追加し、それぞれのプロパティで優先するバージョンを選択しておきます。

index.html(.php/.cgi)なしに統一する場合

# Redirect
RewriteEngine on
RewriteCond %{THE_REQUEST} ^.*/index\.(html|php|cgi)
RewriteRule ^(.*)index\.(html|php|cgi)$ http://www.SiteURL.com/$1 [R=301,L]

これでファイル形式を問わず、indexなしに統一することができます。

なお.htaccess作成の際はテキストエディタなどで作成し、txt.htaccess 等で保存します。その後FTPクライアントでアップしてから、サーバー上でリネームすれば完了です。後述するチェッカーなどで動作確認を忘れず行いましょう。なお複数の.htaccessを設置する場合、子ディレクトリのものが優先されます。

PHPで設定する場合。

PHPでも301リダイレクトが設定できます。

<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.NewDomain.com");
exit;
?>

すべてのページに適用されるようにします。

メタタグで設定する場合。

.htaccessやPHPでのリダイレクトが使えない場合、メタタグでも転送できます。こちらは手軽に利用できることが利点ですが、Googleは301リダイレクトを推奨しているため、使う際には注意が必要です。メタタグやJavaScriptでの転送は、サーバーによる301リダイレクトとは違い、検索エンジンの評価を引き継ぐ保証がありません。

<link rel=”canonical” href=”http://www.NewDomain.com”>
<meta http-equiv="refresh" content="5;URL=http://www.NewDomain.com">

すべてのページに適用されるようにします。
URL正規化タグ(rel=”canonical”)は、重複コンテンツに見られないよう入れておきます。
この場合、5秒後に新しいドメインのページに移動します。
0秒を指定した場合、Yahoo!では301リダイレクトとして扱われます。

JavaScriptで設定する場合。

<script type="text/javascript">
<!--
setTimeout("jump()", 5000);
function jump(){
	location.href="http://www.NewDomain.com";
}
-->
</script>

5秒後に新しいドメインのページに移動します。
JavaScriptが無効だと転送されません。

すべてTOPにリダイレクト、はNG。

301リダイレクトは基本的に新旧で対になるページにすべきです。
不要になったページはトップにリダイレクトするのでなく、404エラーを返すようにします。レンタルサーバーデフォルトの404ページでなく、カスタム404ページを作成してそこにトップページや人気コンテンツへの導線を用意しましょう。

関連性を無視してすべてトップにリダイレクトをかけると、ソフト404扱いとなり検索エンジンにスパム扱いを受けてしまう可能性が高まります。これは例えば、トップにリダイレクトされる古い商品ページが無数にインデックスされていれば、該当の商品を検索しているユーザーにとって不利益になるからです。

カスタム404ページを設置する場合。

#Custom 404
ErrorDocument 404 /error.html

/error.html 部分は任意で記述します。

PHPで404エラーを返す場合。

<?php
header("HTTP/1.1 404 Not Found");
?>

これでステータスコード:404 が出力されます。

カスタム404ページのデザインに役立つPSD素材。

リダイレクトの動作確認に便利なツール。

リダイレクトの動作確認に便利なツールをご紹介します。

リダイレクトが無事動いていることを確認したら、Search Console のアドレス変更ツールを使って、アドレス変更をリクエストしておきましょう。

リダイレクトは基本そのままにしておく。

移転が完了した後も、リダイレクト設定は可能な限りそのままにしておくほうがいいようです。

301リダイレクトは「恒久的な転送」です。301リダイレクトが設定されている状態で検索エンジンは、URLが変わったことを認識し処理します。内部リンク・外部リンクの両方を新しいURLに張替え、新しいURLにも十分なリンクが集まるなど、301リダイレクトの手助けを借りずに新しいURLに評価が付いたと判断したら、301リダイレクトを“切る”ことはありえます。
そうだとしても、301リダイレクトは原則、半永久的に設定しておくべきです。海外SEO情報ブログ

まとめ

いかがでしたでしょうか。コピペで済ましてしまうことも多い.htaccessでのリダイレクトですが、改めて見直してみると知らなかったことも多いのではないでしょうか。
サイトURL変更前後の検索順位や、流入数にも関わるシビアな問題なので、日々更新される情報をチェックしつつ正しい知識や手順を身につけておきたいものです。ではまた!

参考:
URL の変更を伴うサイト移転 – Search Console ヘルプ
301リダイレクトによるサイト移転時に重要なTIPSほか、気になる最新SEOのQ&A – 海外SEO情報ブログ
新人コーダーに知っておいて欲しいリダイレクトの基本 – クロノドライブ

個性的な404デザインまとめ!日本国内・海外のエラーページ48選。

ウェブ制作でお悩みの方へ。

BILLIONPLAN JAPAN Co, Ltd

ネット通販やウェブ制作、ECサポート事業を行っている(株)ビリオンプラン・ジャパンが運営しています。ランディングページやサイト制作、自社メディアを使った集客提案、中国をはじめとする海外ローカライズ作業など幅広く対応いたします。

ウェブ制作のお悩み、ご相談ください。

ビリオンプラン・ジャパンは日本を拠点に、香港などの海外グループ会社も生かし各種サービスをご提供しています。まずはお気軽にご相談くださいませ。

または、お電話でも承ります。
※ただいま新規ウェブ制作の受付は停止しております
 10:00 - 19:00(土日祝休み)

06-6271-7761

ABOUT ME

おむおデザイナー/編集Twitter:@BILLIONPLAN_JP
大阪在住WEBデザイナー。制作会社、EC業界でデザイナーをやった後に、ゲームアプリの世界へ。そんなにゲーム好きじゃないことに気づいてウェブに出戻り。その後ビリオンプラン立ち上げに参加。ご相談はこちらにお願いします。フェネック飼いたい。 →記事一覧
Sponsored Link

新着記事を配信しています

FacebookやGoogle+で新着記事を配信しています。よろしければ「いいね!」や「フォロー」をお願いします。

follow us in feedly