【.htaccess】
トップページのURL正規化と
常時SSL通信にする設定方法

2020-05-09

通常、独自ドメインなどを取得してウェブサイトを公開していると、複数の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」なしで統一する書き方はこちら。

.htaccess

RewriteEngine On
#index.htmlなしで統一
RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ https://ドメイン.com/$1 [R=301,L]

「sample.com/index.html」という形式で統一したい場合はこちら。一発コピペでOKです。

.htaccess

RewriteEngine On
#index.htmlありで統一
RewriteRule ^$ /index.html [R=301,L]

実際にコピペで使う場合は、「ドメイン」の部分をお使いのドメインに変更してください。

「.net」「.biz」などのトップドメインをお使いの場合は、「.com」の部分も変更してくださいね!

また、もしレンタルサーバーなどでSSL設定をしていない場合は、「https」部分を「http」に変更してください。

常時SSL化設定の書き方

暗号化されていないページ(http://~)にアクセスがあった場合に、自動的に暗号化されているURL(https://~)へ転送する設定です。

一発コピペでOKなので、とっても簡単!

サイトをSSL化している場合は、ぜひ実装してみましょう!

.htaccess

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つを合わせて書くと、こんな感じになります。

.htaccess

#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回目は省略できます。

ドメイン部分を変更すればコピペで利用できるので、ぜひ活用してみてくださいね。

SHARE

このサイトについて

「Web Work Plus」はWEB制作・ビジネスのちょい足し情報メデイアです。ちょっとしたハテナをプラスに変える役立つ備忘録を発信中!