2018.10.10
コーディング
.htaccessでサイトドメインを正規化して統一する方法

ウェブサイトを公開すると、多くの場合ドメインはwwwの有り無しや、/index.htmlの有り無し、どちらでもアクセスできる状態にあります。
このままでは別のURLであると認識されてページの評価が分散してしまったり、コピーコンテンツ扱いされて評価にペナルティを受ける可能性もありえます。
これを防ぐために行うのがURLの正規化です。今回はhtaccessその方法をご紹介します。
ドメインを統一する記述の紹介
一部のサーバーでは管理画面や設定でドメインを自動で正規化してくれるものもあるようですがまだまだ稀な例のようです。自分で処理を把握、制御する意味でもhtaccessの編集方法を紹介します。
www有りで統一
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
example.comの部分は例ですので実装に合わせて編集してください。
www無しで統一
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
ファイル名の有無の統一
http://example.com/やhttp://example.com/index.htmlを、http://example.comに統一してすっきりさせます。
RewriteEngine on RewriteRule ^(.*)/+$ $1 [R=301,L]
暗号化の有無の統一
httpとhttpsの表記は、暗号化を行っている場合httpsに統一することが推奨されています。またそもそも、サイトの常時SSL化をGoogleが推奨しています。積極的に導入を検討しましょう。
RewriteEngine on
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
まとめ
サイトドメインをhtaccessを使って正規化する方法をご紹介しました。見た目がすっきりする以上に機能として効果的な面が多い正規化、積極的に導入してサイトの価値を高めましょう。
