WEBマーケティングのトータルサポートならディーエムソリューションズ株式会社
0120-934-226受付時間 平日9:00~18:00

覚えておくべき.htaccessによるリダイレクトの設定方法

このエントリーをはてなブックマークに追加

覚えておくべき.htaccessによるリダイレクトの設定方法

Webサイトの運営をしていると、「リダイレクト」が必要になる場面があるかと思います。例えば、サイトのリニューアルでアドレス表記が変わった、コンテンツのブラッシュアップで統合するページが出てきた、など。

リダイレクトは、htmlを書き換えるだけでは対応できず、サーバー側での対応が必要です。そのため、「設定しなくてはならないけれど難易度が高い」とお悩みの方もいらっしゃるのではないでしょうか。

この記事では、サイトのリダイレクト処理が必要でお悩みの方に向けて、

  • .htaccessとはなにか
  • リダイレクトはどんなときに必要か
  • .htaccessを使ったリダイレクトの設定はどうやるのか
  • という点について詳しく解説していきます。

.htaccessとは?

リダイレクトなど、アクセス制御を行いたいときに必須のファイルが「.htaccess(読み方:ドットエイチティーアクセス)」です。簡単に言うと、Webサーバーの設定を簡単にできるファイルのこと。このファイルに命令文を書くことで、サーバーを動かすことができます。

.htaccessについての基礎知識や、具体的な設定方法は以下の記事でも解説しているので、合わせて参考にしてください。

.htaccessとは?書き方と設定場所やSEO活用方法について

.htaccessで出来ること

.htaccessを使って行う作業の代表例には、次の4つが挙げられます。いずれもSEOで使う機能なので、知っておきましょう。

リダイレクト

この記事で解説する「リダイレクト」を設定には、.htaccessが必須です。リダイレクトにも種類がありますが(後述)、ページのURLが変更になったときに使う「301リダイレクト」に対応しています。

ページ単位の転送も、ディレクトリ単位のまとめて転送もできます。

URLの正規化

リダイレクトの方法を使えば、「URLの正規化」もできます。URLの正規化とは、同じページなのに複数のアドレスが発生してしまう状況を改善するための処理です。「www.」の有り無し、「/index.html」などの有り無しなどの揺れを1つのURLに統一できます。

URLの正規化については、以下を参考にしてください。

URLの正規化とは?正規化が必要な理由と実践方法

ベーシック認証

Web上に公開しているものの、公開ユーザーを限定したい場合には、アクセス制限をかけられます。これを「ベーシック認証」といい、閲覧時にユーザーIDとパスワードの入力を求める設定ができます。

この設定は、.htaccessに記述をすることに加え、ユーザー名とパスワードを格納する.htpasswdというファイルの作成も必要です。

特定のドメインからのアクセスを除外する

ベーシック認証の逆で、指定したIPアドレスやドメインからのアクセスを除外する(アクセス制限をする)こともできます。特定のアドレスやドメインから不正なアクセスが有った場合、アクセスを制限して不正な攻撃を避けることができます。

キャッシュの設定

ブラウザキャッシュの有効期限を設定できます。キャッシュを適切に設定すると、毎回サーバー通信しなくても良くなるので、サーバーリクエストが減りページの表示速度が上がります。

リダイレクトとは?

今回は、.htaccessの機能の中でも「リダイレクト」に注目します。
リダイレクトとは、自動的にユーザーを転送する処理のこと。古いページにアクセスしたユーザーを、サーバー側の処理で新しいページに強制的に飛ばす仕組みです。

代表的な利用シーンとしては、以下のようなものが挙げられます。

  • サイトリニューアルやドメイン変更に伴うURL変更
  • PCサイトとスマートフォンのURLが違う場合の処理
  • 期間限定のページがある場合の表示
  • Webサイトメンテナンス時に一時的に処理中ページを表示
  • ページを削除した時、トップページへのリダイヤル

リダイレクトには、「301リダイレクト」「302リダイレクト」の2種類があり、どちらを使うかがよく話題にのぼります。ユーザーから見るとどちらも転送されるという結果が同じですが、SEO面では違う扱いになるので、サイト運用の観点からは注意が必要です。

301リダイレクト

301リダイレクトは、”永久的”にサイトURLが変更されるときに使うリダイレクト処理です。301リダイレクトを設定すると、検索エンジンが「古いURLはもう使われない」と判断し、新しいURLに古いページの評価を引き継いでくれます。検索結果にも古いURLは表示されなくなり、新しいURLが表示されるようになります。

  • サイトリニューアルでURLが変わった
  • サイトのドメインが変わった
  • URLの正規化(「www.」の有り無し、「/index.html」などの有り無しを統一)
  • SSL化(httpからhttpsの変更)

具体的に言うと上記の場合に、301リダイレクトの設定を行います。
301リダイレクトについては、以下の記事も参考にしてください。

301リダイレクトとは?サイトリニューアル時に必ず設定したい.htaccessの記述方法

302リダイレクト

302リダイレクトとは、URLを「一時的」に転送するための処理のことです。具体的な基準はありませんが、一定期間が経ったら元のURLに戻す場合や、どちらのURLも使う場合などは302リダイレクトを使います。あくまでも一時的な転送なので、検索結果には転送前のページが表示されます。

  • メンテナンス中など、一定期間のみ使われるURLに転送する時
  • ユーザーがアクセスしているデバイス別に表示ページを変える時
  • A/Bテストを行いたい時

具体的には上記のような場合に302リダイレクトを使います。

302リダイレクトについては、以下の記事も参考にしてください。

302リダイレクトの正しい使い方と301リダイレクトの違いを分かりやすく解説!

リダイレクトを行う必要性

リダイレクトには、ユーザービリティの観点とSEOの観点の2つから設定する意義があります。

まずはユーザービリティの面から。URLを変更したとしても、古いURLにも少なからずユーザーはやってきます。古いURLをブックマークしていたり、古いURLへのリンクが存在していたり、検索結果に古いURLが残っていたり(301リダイレクトを設定しても、リニューアル後しばらくは検索結果に登場します)。存在しないページへアクセスすることはユーザーにとってストレスですし、サイトから離脱する可能性が高いです。サイトへの信頼性もなくなり、他社サイトを使うようになるかもしれません。

また、SEO面でも古いページの評価が引き継げないという損失が発生します。恒久的にページが移るという指示なので、301リダイレクトを設定することで評価を引き継げます。古いURLに被リンクが設定されていた場合、その評価も引き継げます。

.htaccessによるリダイレクトの設定方法

リダイレクトの必要性はご理解いただけたと思います。ここからは、具体的なリダイレクトの設定方法について解説します。

リダイレクトの実装方法には複数の手段がありますが、ここでは「.htaccess」を使ったリダイレクト処理について説明します。Googleも、ブラウザで実行するリダイレクトではなく、.htaccessなどを使ったサーバーサイドのリダイレクト処理を推奨しています。

.htaccessのリダイレクト処理手順

まず、.htaccessファイルが有るかどうかを確認しましょう。Webサイトを管理しているサーバー内に.htaccessファイルが有れば、それをダウンロードして編集します。ファイルがなければ、テキストファイルに記述し、「.htaccess」という名前で保存してください。

行いたい指示を記述したら、サーバーにアップロードします。FTPソフトを利用し、反映させたいディレクトリのトップに設置します。アップロード後に、想定通りの動きになっているか確認しましょう。

リダイレクトの記述方法

よくあるリダイレクトの記述方法について解説します。

.htaccessの記述内容は、利用しているサーバー環境やその使用状況によって異なります。あくまでここでは一般的なものを紹介しておりますので、ご注意ください。

ページ単位でのリダイレクト

一部のページをリダイレクトしたい場合は、次のように記述します。

RewriteRule ^/old-page.html$ http://www.example.com/new-page.html [R=301,L]

※http://www.example.com/、old-page.html、new-page.htmlの部分は適宜書き換えてください。移転先のページは、フルパス(http~)を記載する点にご注意ください

※上記コードは301リダイレクトの場合。302リダイレクトの場合は、R=302に変更してください。

ディレクトリ単位でのリダイレクト

ディレクトリ全体にリダイレクト処理を行いたい場合は、以下のように記述します。

RewriteRule ^old-dir(.*)$ /new-dir$1 [R=301,L] RewriteRule ^new-dir/old-page.html$ http://www.example.com/new-dir/new-page.html [R=301,L]

※old-dir、new-dir、http://www.example.com/、old-page.html、new-page.htmlの部分は適宜書き換えてください。

※上記コードは301リダイレクトの場合。302リダイレクトの場合は、R=302に変更してください。

URLの正規化

たとえば、「www.」ありに変更する場合は次のように書きます。

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(example.com)(:80)? [NC] RewriteRule ^(.*) http://www.example.com/$1 [R=301,L] RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ http://www.example.com/$1 [R=301,L]

※example.comやindex.htmlの部分は適宜書き換えてください。

ドメイン単位でのリダイレクト

ドメインが変更になるが下層ページは変わらないなど、ドメインの変更がある場合は、URL最適化を行った後に以下を追記してください。

RewriteCond %{HTTP_HOST} ^(www.old-url.com)(:80)? [NC] RewriteRule ^(.*) http://www.new-url.com/$1 [R=301,L]

※www.old-url.comやwww.new-url.comは適宜書き換えてください。

SSL化の転送

暗号化セキュリティSSL化を行うと、URLがhttp~からhttps~に変わります。

RewriteEngine on
RewriteCond %{ HTTPS} off
RewriteRule ^(.*)$ https://%{ HTTP_HOST}%{REQUEST_URI} [L,R=301]

リダイレクトを行う際の注意点

リダイレクトは、サイトアクセスに関係する重要な処理です。設定時にトラブルが起きないよう、注意を払って行いましょう。ありがちな間違いや、注意点について紹介するので、設定の際にはご確認ください。

バックアップをしっかり取る

アップロード時に間違った内容で上書きしてしまい、サイトが表示されない…というトラブルが起きる可能性があります。アップロード前にバックアップをしっかり取りましょう。

また、.htaccessは複数の階層に複数のファイルを設定できます。アップロードする場所が間違っていないかをしっかり確認してください。

無限ループになっていないか

同じファイルに「AのページからBのページへ転送」「BのページからAのページへ転送」とう処理を書いてしまうと、無限ループが生じます。ページを見ることができないばかりか、サーバーへの負荷が大きくなり、サイト全体に悪影響を及ぼします。リダイレクトは少ない回数が望ましいので、複数のリダイレクトが発生しないように注意してください。

反映させた後は、想定通りの動きをしているかすぐに確認しましょう。

WordPressの必要な記述の削除

WordPressを利用している場合、.htaccessには最初から特定の記述が指定されています。
# BEGIN WordPress~# END WordPressで囲まれている部分です。

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L] RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L] # END WordPress

記述内容がリダイレクト処理のコードと似ていることもあり、勘違いしやすい部分です。ここを上書きや削除してしまうと、ページが表示されなくなる可能性があります。

meta refreshとJavaScriptを使わない

リダイレクト処理には、.htaccess以外にも「meta refresh」と「JavaScript」があります。

meta refreshは、HTMLの記述でリダイレクト処理ができる方法。サーバーの設定が不要なので手軽というメリットがあります。しかし、Googleに推奨されている方法ではないので、この方法でリダイレクトをしてもSEO評価を引き継ぐことはできません。ブラウザによっては対応していない場合もあります。

JavaScriptを利用しても、リダイレクト処理ができます。こちらはGoogleも転送を認識でき、ページ評価も引き継いでくれます。しかし、JavaScriptの実行のために古いページも残しておく必要がある、アクセス解析で不具合が発生するなどのデメリットがあります。

リダイレクトを行いたい場合は、「meta refresh」と「JavaScript」ではなく.htaccessで設定しましょう。

適切なリダイレクト先の指定

リダイレクト先とリダイレクト元には関連性が必要です。同じテーマのページでなければ、評価も適切に引き継げません。ユーザービリティの観点からも、全てTOPページに遷移すると非常に使い勝手が悪く、離脱につながります。

出来る限り、対応しているページへのリダイレクトを行いましょう。

大規模なリニューアルなどで不必要なURLが発生した場合は、サーチコンソールからURLの削除を行い、クローラにページが存在しなくなったことを伝えるのも一つの手段です。

おわりに

以上、リダイレクトの考え方や具体的な設定方法をご紹介しました。

サイトに変更があった場合などは、適切にリダイレクト設定を行ってユーザーからの評価もSEO評価も維持しましょう。リダイレクトを行うときには、.htaccessに記述を行います。難しいと思われるかもしれませんが、この記事の参考コードを真似しながら試してみてください。

   
このエントリーをはてなブックマークに追加
The following two tabs change content below.
digital-marketing

digital-marketing

デジタルマーケティング研究所では、デジタルマーケティングの施策・広告・技術を、分析・実装・検証して、WEB担当者・マーケティング担当者の方の役立つ情報を発信していきます。

SNSでフォロー

Contact

Webマーケティングに関わる施策全般をワンストップでご提供します。
お気軽にご相談ください。

Webマーケティング最新情報をお届け
東京営業所
東京都新宿区西新宿1丁目6-1 新宿エルタワー3階
電話番号 03-6374-1393 FAX番号 0422-57-2761
大阪営業所
大阪府大阪市北区堂島1丁目5-30 堂島プラザビル10F
電話番号 06-7176-3367 FAX番号 06-7176-3368
Copyright © 2021 DM SOLUTIONS Co.,Ltd. All rights reserved.