【.htaccess】
トップページのURL正規化と
常時SSL通信にする設定方法
通常、独自ドメインなどを取得してウェブサイトを公開していると、複数のURLで同じページにアクセスできます。
たとえばトップページの場合だと、「https://sample.com」でも「https://sample.com/index.html」といったURLでも、同じトップページへアクセスできます。
このままだと、Google Analyticsなどの解析データの正確性が落ちたり、アクセス数が分散してSEO的に不利になると言われています。
そこで、ここではサイトのトップページのURLを統一するURL正規化を、「.htaccessファイル」で実装する方法を見ていきます。
また、サイトをSSL(暗号通信)化している場合、暗号化されていないURL(http://~)でアクセスがあった場合に、自動的に暗号化されたURLへ転送する設定方法も合わせて見ていきましょう。
.htaccessファイルの作成
「.htaccessファイル」でURL正規化する手順は3つです。
①「.htaccessファイル」を作成。
②「.htaccessファイル」に設定を書く。
③「.htaccessファイル」をドメイン直下に設置。
まずはテキストエディタで空ファイルを作成して、「.htaccess」という名前で保存します。
エクスプローラーからは先頭に「.」のつくファイル名はつけられないので、エディタで作成しておきましょう。
「htaccess」という名前で保存しておき、サーバーにUPした時にリネーム(名前を変更)してもOKです。
以下の設定を書いて、「.htaccessファイル」をドメイン直下に設置すれば、URL正規化は完了です!
はじめて「.htaccessファイル」を作る場合や、「ドメイン直下」ってどこ? と思うときは、良ければ、こちらも参考にしてみてください。
トップページのURL正規化の書き方
正規のURLを1つ設定しておき、他の類似URLにアクセスがあった場合は、正規URLへリダイレクト(自動転送)するように設定していきます。
「/index.html」なしで統一する書き方はこちら。
RewriteEngine On
#index.htmlなしで統一
RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ https://ドメイン.com/$1 [R=301,L]
「sample.com/index.html」という形式で統一したい場合はこちら。一発コピペでOKです。
RewriteEngine On
#index.htmlありで統一
RewriteRule ^$ /index.html [R=301,L]
実際にコピペで使う場合は、「ドメイン」の部分をお使いのドメインに変更してください。
「.net」「.biz」などのトップドメインをお使いの場合は、「.com」の部分も変更してくださいね!
また、もしレンタルサーバーなどでSSL設定をしていない場合は、「https」部分を「http」に変更してください。
常時SSL化設定の書き方
暗号化されていないページ(http://~)にアクセスがあった場合に、自動的に暗号化されているURL(https://~)へ転送する設定です。
一発コピペでOKなので、とっても簡単!
サイトをSSL化している場合は、ぜひ実装してみましょう!
RewriteEngine On
#常時SSL通信
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
ちなみに、SSL化は多くのレンタルサーバーで設定できますが、無料サーバーでは対応していない事も多いです。
サイトをSSL化していない場合は「https://」のURLは使えないので、「常時SSL通信」の記述は使えません。
トップページのURL正規化と
常時SSL化まとめ
ここまで、.htaccessファイルによるトップページのURL正規化と、常時SSL化設定の書き方を見てきました。
2つを合わせて書くと、こんな感じになります。
#mod_rewriteを有効にする
RewriteEngine On
#常時SSL通信
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
#トップページをindex.htmlなしで統一
RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ https://ドメイン.com/$1 [R=301,L]
「RewriteEngine On」は一度宣言すればOKなので、2回目は省略できます。
ドメイン部分を変更すればコピペで利用できるので、ぜひ活用してみてくださいね。