我们的平台可以通过多个域访问(每种语言/品牌一个)。对于所有域,我们强制使用www。和https://。我们使用一个包含以下代码的 .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]
一切正常,除了一种情况:
当直接调用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