.htaccessファイルを使ってサイトを強制的にSSL化(HTTPS化)する方法

Web

SSL化(HTTPS化)を行うことで、通信が暗号化され、セキュリティが向上します。

.htaccess ファイルを使用すれば、HTTPでアクセスされた場合に強制的にHTTPSにリダイレクトする設定が可能です。

これにより、すべてのユーザーが自動的にSSLを利用してサイトにアクセスするようになります。

この記事では、.htaccess ファイルを使ってサイト全体を強制的にHTTPSにリダイレクトする方法を解説します。

スポンサーリンク

方法

以下に、.htaccessファイルで強制SSL化する手順、細かい補足を説明します。

1. .htaccess ファイルの場所

通常、.htaccess ファイルはWebサーバーのルートディレクトリ(public_htmlwww など)にあります。

もし見つからない場合、隠しファイルの表示を有効にするか、新規に作成します。

ファイルの作成手順:

  1. ファイルマネージャーやFTPクライアントで public_html ディレクトリに移動。
  2. 既存の .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 ファイルの保存と確認

  1. .htaccess ファイルに設定を追加・変更したら、ファイルを保存します。
  2. その後、ブラウザでサイトにアクセスし、HTTPでアクセスしても自動的にHTTPSにリダイレクトされるか確認します。

6. キャッシュクリアと確認

ブラウザがリダイレクト情報をキャッシュしている可能性があるため、変更が反映されない場合はブラウザのキャッシュをクリアし、再度確認します。

まとめ

.htaccess を使ってサイトを強制的にSSL化することで、ユーザーが常に安全なHTTPSでアクセスできるようになります。

.htaccess のリダイレクト設定は非常に強力で、簡単にサイト全体をHTTPSにリダイレクトできます。正しく設定し、WebサイトのセキュリティとSEO効果を高めましょう。

コメント

タイトルとURLをコピーしました