私は最近、クライアントのために古いドメイン名で新しいサイトを構築しました。どうやら過去のある時点で誰かがドメインで HSTS を有効にしたため、アクセス時に「Your connection is not private」というエラーが表示された人もいました。これを回避するために、Let's Encrypt SSL証明書を取得して、
<IfModule mod_headers.c>
Header set Strict-Transport-Security "max-age=0; includeSubDomains" env=HTTPS
</IfModule>
ヘッダーで、HSTS が設定されているブラウザーで HSTS を無効にします。
問題は、そのセットを使用しても、https を使用してサイトを閲覧できることです (有効な証明書があるため)。また、https でブックマークなどを作成することもできます。証明書の有効期限が切れると、これは問題になります (彼らはそれを必要としないので、私はそうします)。
そこで、.htaccess ファイルにリダイレクトを追加しました。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} =on
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]
</IfModule>
しかし、これらの両方を設定すると、リダイレクト ループが発生します。リダイレクトなしで HSTS 無効化コードを使用すると、一度サイトにアクセスして HSTS を無効にし、リダイレクトを再度追加してから、通常どおりアクセスできますが、明らかに、ユーザーごとにそれを行うことはできません。私の推測では、HSTS コードが .htaccess ファイルのリダイレクトの前に配置されていても、ブラウザーが HSTS を無効にする前にリダイレクトがトリガーされ、リダイレクト ループが発生します。
これを回避する方法はありますか?
ありがとう!