サイトを SSL 化することが、多くなってきました。
Apache で HTTP でアクセスがあった場合、HTTPS にリダイレクトさせるための、「 .htaccess 」に記述する方法です。
全てのページをHTTPS(SSL暗号化)にリダイレクトさせることができます。
HTTPS へリダイレクトの設定をするには、既にサイト全体が、SSL 化されていることが前提です。
.htaccess の記述例
コンテンツが置かれているディレクトリの、.htaccess ファイルに、以下のように記述します。
リダイレクトの設定をするためには、あらかじめ mod_rewrite モジュールが読み込まれている必要があります。
.htaccess が、利用できるレンタルサーバであれば、設定は可能です。
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </IfModule>
RewriteCond
で、変数「HTTPS」の値が Off (設定されていない)の場合、HTTPS にリダイレクトさせます。
無料SSLを利用している場合
Let’s Encrypt などの無料SSLを利用している場合、スクリプト(certbot など)で「.well-known/acme-challenge/」 配下にファイルが生成され、認証が行われます。
無料SSL を利用している場合、.htaccess は、以下のように記述すると良さそうです。
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} off RewriteCond %{REQUEST_URI} !\.well-known/acme-challenge RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </IfModule>
.htaccess に記述せず、Apache の設定ファイル(httpd.conf)に記述することも可能です。