最近、ある友人がウェブサイトを作成し、SSL証明書を導入して、サイト全体でHTTPS暗号化を有効にしました。しかし、設定完了後もHTTPでアクセスできることが分かり、ユーザーを強制的にHTTPS暗号化モードへ移行できない状態になっていました。

後日、その友人から解決を頼まれたので、百度で検索した解決策をいくつか参考にしてみました。しかし、どれも使えず、301リダイレクトが繰り返されてサイトが開けなくなってしまいました。そこで、擬似静的に関するドキュメントをいくつか確認し、HTTPからHTTPSでのサイトアクセスへ強制的にリダイレクトするための .htaccess リダイレクトルールを作成しました。

重要なお知らせ: リダイレクトの優先順位を確保するため、コードは必ず .htaccess ファイルの先頭に配置してください。既存のルールと重複する場合は、4、5行だけ記述すれば十分です。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
</IfModule>

上記のコードを .htaccess に保存してください。それでも実現できない場合は、notepad++ エディターを使ってファイルを保存してください。