SSL化(HTTPS化)を行うことで、通信が暗号化され、セキュリティが向上します。
.htaccess
ファイルを使用すれば、HTTPでアクセスされた場合に強制的にHTTPSにリダイレクトする設定が可能です。
これにより、すべてのユーザーが自動的にSSLを利用してサイトにアクセスするようになります。
この記事では、.htaccess
ファイルを使ってサイト全体を強制的にHTTPSにリダイレクトする方法を解説します。
方法

以下に、.htaccessファイルで強制SSL化する手順、細かい補足を説明します。
1. .htaccess ファイルの場所
通常、.htaccess
ファイルはWebサーバーのルートディレクトリ(public_html
や www
など)にあります。
もし見つからない場合、隠しファイルの表示を有効にするか、新規に作成します。
ファイルの作成手順:
- ファイルマネージャーやFTPクライアントで
public_html
ディレクトリに移動。 - 既存の
.htaccess
ファイルがない場合、「新規ファイル」を作成し、ファイル名を「.htaccess
」とします。
2. HTTPSにリダイレクトするコード
以下のコードを .htaccess
ファイルに追加します。
これにより、すべてのHTTPアクセスがHTTPSにリダイレクトされます。
# HTTPSへの強制リダイレクト
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
コードの説明:
- RewriteEngine On: URLの書き換え機能を有効にします。
- RewriteCond %{HTTPS} off: 現在の接続がHTTP(SSLではない)である場合に、この条件が成立します。
- RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]: HTTPのリクエストを、そのままのドメイン名(
%{HTTP_HOST}
)とパス(%{REQUEST_URI}
)を使用してHTTPSにリダイレクトします。301
は恒久的なリダイレクトを示します。
3. サブディレクトリでのSSL強制化
もし特定のサブディレクトリだけをSSL化したい場合は、そのディレクトリ内の .htaccess
ファイルに以下のコードを追加します。
# サブディレクトリでのHTTPS強制化
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} ^/サブディレクトリ名
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
これにより、指定されたサブディレクトリにアクセスがある場合のみHTTPSにリダイレクトされます。
4. wwwなし/ありの統一も行う場合
「wwwあり」と「wwwなし」のURLを統一してリダイレクトする設定も併せて行う場合、以下のコードを使用します。これにより、どちらにアクセスしても一方に統一され、さらにHTTPSにリダイレクトされます。
wwwなしに統一してHTTPSにリダイレクトする例:
# wwwなしに統一してHTTPSにリダイレクト
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1%{REQUEST_URI} [L,R=301]
wwwありに統一してHTTPSにリダイレクトする例:
# wwwありに統一してHTTPSにリダイレクト
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
5. .htaccess ファイルの保存と確認
.htaccess
ファイルに設定を追加・変更したら、ファイルを保存します。- その後、ブラウザでサイトにアクセスし、HTTPでアクセスしても自動的にHTTPSにリダイレクトされるか確認します。
6. キャッシュクリアと確認
ブラウザがリダイレクト情報をキャッシュしている可能性があるため、変更が反映されない場合はブラウザのキャッシュをクリアし、再度確認します。
まとめ
.htaccess
を使ってサイトを強制的にSSL化することで、ユーザーが常に安全なHTTPSでアクセスできるようになります。
.htaccess
のリダイレクト設定は非常に強力で、簡単にサイト全体をHTTPSにリダイレクトできます。正しく設定し、WebサイトのセキュリティとSEO効果を高めましょう。
コメント