コンテンツ
.htaccessを用いたURLの正規化について
「URLの正規化」とは、同一ページのURLを統一する為の対策です。
同じページなのに、複数のURLが存在すると、Googleに別々のコンテンツとみなされてしまう可能性もあります。
例えば、"index.htmlの有り無し"や"www有り無し"などです。
↓
https://example.com/index.html
https://www.example.com/
https://www.example.com/index.html
これらの4つのURLは同じページを指していますよね。
でも、何も対策をしていなければユーザーによって「https://example.com/」へアクセスしたり「https://example.com/index.html」へアクセスしたりと、アクセスするURLがバラバラになってしまいます。
そうなると、同一ページなのにGoogleの評価が分散されてしまう可能性も出てきます。
また、http://~とhttps://~が混在するのも同様に良くないですよね。
この場合には、"HTTPをHTTPSへリダイレクト"させて、常時SSL化の設定も必ず行っておきましょう。
そこで、今回はいずれかのURLへ統一するための.htaccessの記述方法をまとめておきます。
古いWEBサイトだと、「https://example.com/index.html」や「https://www.example.com/」に統一されている場合も多いです。
ですが、これから新しく作るWEBサイトであれば、「https://example.com/」に統一するようにしましょう。
index.htmlやindex.phpをスラッシュ終わりに統一
まずは、index.html(index.php)の付いたURLを、スラッシュ終わりに統一する方法です。
- index.htmlをスラッシュ終わりに統一
RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ http://example.com/$1 [R=301,L]
- index.phpをスラッシュ終わりに統一
RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteRule ^(.*)index.php$ http://example.com/$1 [R=301,L]
- index.html、index.phpをまとめてスラッシュ終わりに統一
RewriteCond %{THE_REQUEST} ^.*/index.(html|php)
RewriteRule ^(.*)index.php$ http://example.com/$1 [R=301,L]
↓
これにより、「https://example.com/index.html」のURLを「https://example.com/」へリダイレクトすることができます。
wwwあり、なしを統一
次は、wwwあり、なしのURLをどちらかに統一する方法です。
因みに、最近はwwwなしで運営しているWEBサイトが多いです。
ですが、既にwwwありで運営している場合には、無理にwwなしに統一するのは避けましょう。
- wwwなしに統一
RewriteCond %{HTTP_HOST} ^www\.sample\.com
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
- wwwありに統一
RewriteCond %{HTTP_HOST} ^example\.com
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
「http://~」へのアクセスを「https://~」へ統一
今では、「http://~」へのアクセスは「https://~」へリダイレクトさせて統一させるのが一般的になってきました。
いわゆる「常時SSL化(SSL通信を強制化)」の設定と同じ内容になります。
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
ページナビ(ページング)にも要注意
WEBサイトによっては、ページナビを設定している場合も多いです。
この場合、2ページ目のURLは、「https://example.com/2/」となります。
これは問題ないですよね。
ですが、1ページ目のURLには、「https://example.com/1/」と「https://example.com/」の2つが存在することになります。
細かいところですが、こういったURLの分散も起こらないように注意しましょう。
canonicalタグを用いた正規化方法もあり
URLの正規化には、canonical(カノニカル)というタグを用いた方法もあります。
記述方法は簡単で、<head>~</head>内に以下のようにcanonicalタグを記述するだけです。
<link rel="canonical" href="https://outswan.com/">
</head>
今回は、canonicalタグについての説明はこのくらいにしておきます。
ですが、canonicalタグもよく利用されるので、覚えておきましょう。
設定後の注意点
.htaccessの設定を行った後は、必ず各ページのURLへアクセスして、設定が上手く行えているかのチェックを行いましょう。
仮に、設定に失敗していると、ページが正常に表示されなくなる不具合が発生する可能性もあります。
設定後は、必ずチェックを行うようにしましょう。
まとめ
今回は、.htaccessを利用したURLの統一方法についてまとめました。
同一ページにも関わらず、複数のURLが存在するはSEO上は良くないです。
必ず、"index.htmlありなしの統一"や"wwwありなしの統一"、"HTTP→HTTPSへのリダイレクト"を行って、アクセスできるURLを一つに統一しておきましょう。