強制的に暗号化サイトで表示する方法(mod_rewrite)

レンタルサーバなどでWebサイトを運用していて、一つの場所にファイルをアップロードすると、http:// と https:// の両方のURLでアクセスできる場合があります。

このような場合に、機密情報・個人情報などが確実に暗号化されるように、http:// ではアクセスできないようにする設定をご紹介します。具体的には、Webサーバ Apache の mod_rewrite 機能を使って、http:// でアクセスされたらhttps:// に転送(リダイレクト)します。

対応環境

この方法を使うには、お使いのWebサーバが以下の条件すべてに当てはまる事を確認して下さい。

  • https:// 通信(暗号化通信、SSL、TLS)に対応している
  • Webサーバが Apache
  • mod_rewrite が使える
  • ユーザによる .htaccess の設定が許可されている

http から https への強制転送の設定方法

暗号化通信(https://)で表示したいディレクトリに、以下の内容で .htaccess ファイルを設置して下さい。既存の .htaccess ファイルがある場合は、ファイル内に以下の内容を追記して下さい。

赤字部分は、設置先ディレクトリのサーバルートからのパスに変更して下さい(最後のスラッシュを忘れずに)。青字部分は、そのディレクトリに https でアクセスする場合のURLに変更して下さい。

コピー
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /secure-dir/
 
RewriteCond %{HTTPS}  !=on
RewriteRule ^(.*)$ https://www.example.com/secure-dir/$1 [R=302,NE,L]
</IfModule>