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
を使って正規化する方法をご紹介しました。見た目がすっきりする以上に機能として効果的な面が多い正規化、積極的に導入してサイトの価値を高めましょう。