.htaccessを利用したリダイレクト方法を解説

SEO内部対策
SEO対策
2021.10.20
.htaccessを利用したリダイレクト方法を解説

SEO対策でも重要なURLの正規化を行いたいけれど、.htaccessファイルがよく分からないといった方は多いかと思います。

また、ある程度どういうものか理解している方もWebサーバーを制御する設定ファイルなので、安易に触りたくないという方も多いのではないでしょうか。

この記事ではそういった方をターゲットにし、前半は初心者向けに.htaccessとはどういう役割を持つファイルなのかを解説し、後半は実際にリダイレクトする際のコードの書き方を紹介します。

.htaccessとは一体何?

.htaccessとはWordPress等で使用されているApachというWebサーバーを制御する設定ファイルの1つになります。

Apachの大元の設定ファイルは「httpd.conf」に記載されており、「httpd.conf」ではWebサーバー全体の制御を行っています。

そのため、誰もが自由に触れるファイルではなく、基本的にサーバー管理者のみ設定を変更することができます。

ゆえに個人で借りているレンタルサーバーの場合には、大元の「httpd.conf」ではなく、「.htaccess」の設定を変更することで、Webサーバーの制御等おこなうことができます。

また、アクセス制限やリダイレクト設定等を行える重要なファイルになりますので、誤った設定を行わないように、設定を変更する際は、細心の注意が必要です。

それでは、次に.htaccessを利用することで、どんなことができるのか見ていきましょう。

.htaccessで出来ること

先ほどは、.htaccessとはどういったものなのか簡単に紹介してきました。

ここでは、.htaccessを利用することで、どういうことができるのか見ていきます。

リダイレクト設定

SEO対策で一番良く使う設定といってもよいかもしれないのが、リダイレクト設定(URLの正規化)です。

代表的なのは、下記のようなケースの際に、リダイレクト設定を行います。

  • www「ありなし」のURLの正規化
  • index.html「ありなし」のURLの正規化
  • SSL「ありなし」のURLの正規化
  • 旧サイト(ページ)から新サイト(ページ)への301リダイレクト

※旧ページから新ページへのリダイレクトについては、WordPressの場合「Redirection」等のプラグインで簡単にリダイレクト設定ができます。

リダイレクト設定(URLの正規化)を行う目的として、Googleは1つのページに複数のURLでアクセスできる場合や同じ様な内容のコンテンツが複数ある場合などを重複コンテンツとしてみなします。

そのため、URLの正規化が行われていない場合、正規URLの選択はGoogle任せになり、本来評価して欲しいページが評価されないといったケースに陥ることになります。

また、外部のサイトからの被リンクを獲得した際に、1つのページに複数URLあると、被リンクが分散される恐れがあり、評価も分散されてしまいますので、URL正規化も重要になります。

こういったSEOを行う上で重要な設定も.htaccessではできますので、後ほどリダイレクト設定については、詳しく紹介したいと思います。

単一のページに複数の URL でアクセスできる場合や、異なるページのコンテンツが類似している場合(たとえば、あるページにモバイル版と PC 版の両方がある場合)、Google はそのようなページを同じページの重複版と見なします。Google は、こうした URL のうちの 1 つを「正規」版として選択してクロールします。その他の URL はすべて「重複」した URL と見なし、クロールの頻度を減らします。
引用元:重複した URL を統合する


BASIC認証

BASIC認証とは、Web上に公開するものの、特定のページや階層については、ユーザー名とパスワードを知っている一部のユーザーしか閲覧できないよう、アクセス制限をかける際に利用します。

利用されるケースとしては、会員限定ページや一部の利害関係者のみ閲覧できるページを作りたいといった場合に利用することができます。

.htaccessでBASIC認証の設定を行う際は、.htaccessファイルに加えてユーザー名とパスワードを保存する.htpasswdファイルを作成する必要があります。

BASIC認証を行う際は、こちらの2つのファイルの設定を行う必要がありますので、直接ファイルを触るのはちょっと抵抗があるといった方は、レンタルサーバーの管理画面上で、アクセス制限をかけるという方法がレンタルサーバーによってはございますので、そちらで試してみるのもよいかもしれません。

アクセス制限

指定したIPアドレスのアクセス制限

BASIC認証でもアクセス制限をかけることができますが、その方法以外にも特定のIPアドレスからのアクセスのみ許可したり、特定のIPアドレスからは逆にアクセスを拒否したりといったアクセス制限をかけることもできます。

ただ、制限したいIPアドレスが増えて来るたびに、都度ファイルを触るのは大変ですし、誤って他の記載を削除してしまったといったケースが発生することも考えられますので、アクセス拒否設定の場合は、レンタルサーバーの管理画面上で、アクセス制限をかけるという方法を取る方が安全かもしれません。

アクセス拒否設定

ここでは.htaccessで出来ることについて簡単に見てきました。

BASIC認証と指定したIPアドレスのアクセス制限については、ご契約のレンタルサーバーによっては、管理画面上から操作を行った方が簡単で安全なケースがございますので、ご利用中のレンタルサーバーの仕様を確認してみるとよいでしょう。

次は、いよいよ.htaccessを利用したリダイレクト設定を見ていきます。

.htaccess を利用したリダイレクトの書き方

それでは、いよいよ.htaccess を利用したリダイレクトの設定方法について紹介していきます。ここでは、実際にコードを見ながら解説していきます。

www「ありなし」のURLの正規化

www「ありなし」についてですが、どちらに統一させても問題ありません。

ただ、www「あり」のアドレスのサイトがwww「なし」のアドレスにアクセスした際にも表示されることは、Goolgleからの評価が分散されてしまいますので、統一が必要になります。

詳しい解説については、下記の記事でも解説せておりますので、そちらをご参照下さい。

 

それでは、www「なし」に統一する方法とwww「あり」に統一する方法を見て行きましょう。

wwwなしに統一する

wwwなしに統一する方法は下記のとおりです。

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

wwwありに統一する

wwwありに統一する方法は下記のとおりです。

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^www\.(.+)$ [NC] 
RewriteCond %{HTTP_HOST} (.+)$ [NC] 
RewriteRule ^(.*)$ https://www.%1/$1 [R=301,L]

index.html「ありなし」のURLの正規化

index.html「ありなし」の統一についてですが、. htaccessを利用する際に、よく使用する方はindex.htmlなしに統一する方法なので、index.htmlなしに統一する方法を紹介します。

index.htmlなしに統一する方法は下記のとおりです。

RewriteEngine on
RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ https:// %1/$1 [R=301,L]

SSL「ありなし」のURLの正規化

SSL「ありなし」のURLの正規化とは、httpだったサイトを常時SSL化させたい場合に、現状、httpとhttpsの両方でページが表示されるのをhttpsのURLへ永続的にリダイレクトされさせて、正規化することです。

httpsへのアドレスに統一する方法は下記のとおりです。

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

旧サイトから新サイトへの301リダイレクト

最後に旧サイトから新サイトへ記事を移行したいといった際の301リダイレクトの方法を紹介したいと思います。

利用する例としては、サイトをリニューアルする場合やサイトをSSL化させたいといった場合に新しいドメインを取得して、旧ドメインのコンテンツをリダイレクトさせる時などに利用されます。

その他にも301リダイレクトという手法については、今まで紹介してきたURLの正規化を行う際にも利用されています。

それでは、旧サイトから新サイトへリダイレクトする方法を見て行きましょう。

新サイトにリダイレクトする方法は下記のとおりです。

RewriteEngine On
RewriteCond %{HTTP_HOST}^旧ドメイン
RewriteRule ^(.*)$ https: //新ドメイン/$1 [R=301,L]

SEO対策で重要なURLを正規化する方法をいくつか見てきましたがいかがだったでしょうか。

最後に.htaccessを使用する際の注意点を紹介したいと思います。

.htaccessを使用する際の知っておくべき注意点

.htaccessを使用する際に知っておくべき注意点を簡単に紹介したいと思います。

.htaccessへの記載順(優先順位)

.htaccessを利用したリダイレクト設定時によくあるのが、httpsのURLに正規化させる記述を書いた際に、TOPページは正しくリダイレクトされるけれど、下層ページはリダイレクトされないといった問題です。

そのよくある失敗例として、WordPressのリダイレクトルールの後に書くことによって、[L] フラグで .htaccess の実行が終了されてしまい、リダイレクトルールが適用されないといったケースがあります。

そのため、httpsのURLに正規化させたい場合は、WordPressのリダイレクトルールの前に記載するようにしましょう。

まとめ

.htaccessを利用したリダイレクト方法について解説してきましたが、いかがだったでしょうか。

前半では、.htaccessとはどういう役割を持つのか紹介し、後半では実際にリダイレクトする際のコードの紹介を簡単にしてきました。

SEO対策を行う上でもリダイレクトやURLの正規化は重要ですので、サイトが正しく評価されるように.htaccessを正しく使いこなせるようにしましょう。

SEOやWEB制作に関する情報を検索する

コラム

ピックアップコラム

最新コラム

人気コラム

過去の記事

ご質問やご相談などお気軽にお問い合わせください。

お電話でのお問い合わせはこちら

03-5829-9912

受付時間:平日10:00~19:00(土・日・祝日を除く)