WEB制作

htaccessでサイトURLをHTTPからHTTPSに強制リダイレクトする

  • このエントリーをはてなブックマークに追加

htaccessでサイトURLをHTTPからHTTPSに強制リダイレクトする

ユーザーへの配慮とSEO対策の一貫として意味のある独自SSLを使ったHTTPS接続。今回はSSL導入後に設定したい、通常のHTTP接続によるアクセスをHTTPSへ強制リダイレクトさせる方法を解説します。

目次

すっかり浸透したHTTPS

数年前は一部のフォームやWebサービスでしか見かけなかったHTTPS接続。
今ではすっかり見慣れたものとなり、フォームやログインが必要なサービスでHTTPSじゃないサイトは敬遠したいぐらいのものとなりました。

HTTPSが有効になっている例

今回は、htaccessを使ってサイトの全ページを一括でHTTPS接続にする設定方法について解説していきます。

htaccessを使った設定方法

ここでは仮に、「sample.com」というドメインを持ったサイトについて設定を行うこととします。
また、Apacheで「mod_rewrite」(htaccessによるURLの書き換えが可能かどうかの設定)が有効である必要があります。

.htaccess

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://sample.com/$1 [R=301,L]
</IfModule>

まずは2行目の「RewriteEngine on」でリライトを有効にしています。

3行目の「RewriteCond」は書き換えをするかの条件式です。
%{HTTPS} off」はHTTPSが無効(通常のHTTP)の場合、書き換えを行うように条件式を設定しています。

4行目の「RewriteRule」が書き換え後のURLの指定になります。
^(.*)$」はリクエストされたドメイン以下のパスです。
^」は先頭、「$」は末尾を現し、その間にある「(.*)」は任意の0文字以上の文字を現しています。
先頭から末尾までの全ての文字を一時保存し、「$1」という変数で呼び出していることになります。

「http://sample.com/index.html」であれば「https://sample.com/index.html」にリダイレクトされ、「http://sample.com/about.html」は「https://sample.com/about.html」にリダイレクトされます。
画像やスタイルシート、JavaScriptなどドメイン直下になる全てのファイルが対象です。

HTTPSを無効にする設定方法

あまりないかもしれませんが、逆にHTTPSからHTTPへの強制リダイレクトも可能です。

.htaccess

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} on
RewriteRule ^(.*)$ http://sample.com/$1 [R=301,L]
</IfModule>

3行目の「RewriteCond」の中で、「%{HTTPS} on」(HTTPSが有効)の場合に書き換えをする条件式に変更しています。

4行目の「RewriteRule」のドメインの前を「http://」としている点も重要です。

以上、htaccessによるHTTPS接続に強制リダイレクトする方法でした。

  • このエントリーをはてなブックマークに追加
前のページへ 一覧ページへ一覧 次のページへ