当社のプラットフォームは、複数のドメイン (言語/ブランドごとに 1 つ) からアクセスできます。すべてのドメインについて、強制的にwww. およびhttps:// . これは、次のコードを含む 1 つの .htaccess ファイルで行います。
RewriteEngine On
RewriteBase /
# FIRST WE REDIRECT TO www. IF NOT ALREADY THE CASE
RewriteCond %{HTTP_HOST} ^firstdomain\.com [OR,NC]
RewriteCond %{HTTP_HOST} ^seconddomain\.com [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
# THEN, WE REDIRECT TO https:// IF NOT ALREADY THE CASE
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTP_HOST} ^www\.firstdomain\.com [OR,NC]
RewriteCond %{HTTP_HOST} ^www\.seconddomain\.com [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
1 つの状況を除いて、すべて正常に動作します。
https://seconddomain.comを (www なしで SSL を使用して)直接呼び出すと、証明書エラーが発生します (ドメインが最初に www にリダイレクトされないため、www.* の証明書しかありません)。
ただし、奇妙なことに、この問題はリストの最初のドメインでは発生しません。
https://firstdomain.com -> https://www.firstdomain.comにリダイレクトされます(エラーなし、完璧です!)
これが最初のドメインでのみ機能し、後続のドメインでは機能しないのはなぜですか?
ご協力ありがとうございました!
概要:
WORKS FOR ALL DOMAINS
http://etc -> https://www.etc
http://www.etc -> https://www.etc
WORKS ONLY FOR THE FIRST DOMAIN
https://etc -> https://www.etc