.htaccess 为多个域重写www和https不总是有效

.htaccess 为多个域重写www和https不总是有效,.htaccess,redirect,mod-rewrite,ssl,https,.htaccess,Redirect,Mod Rewrite,Ssl,Https,我们的平台可由多个域访问(每种语言/品牌一个域)。对于所有域,我们强制使用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} ^secondd

我们的平台可由多个域访问(每种语言/品牌一个域)。对于所有域,我们强制使用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]
这一切都很好,除了一种情况:

直接调用时(不使用www,但使用SSL),我们会收到一个证书错误(因为域没有首先重定向到www-我们只有www的证书*)

然而,奇怪的是,这个问题并不发生在列表的第一个域上:

->被重定向到(无错误,完美!)

为什么这只适用于第一个域而不适用于后续域

谢谢你的帮助

总结:

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
试一试


好的,GeoTrust的人告诉我们为什么它不起作用:

我们正在使用在www.firstdomain.com上颁发的SAN证书。www.seconddomain.com、www.thirdodomain.com等是其备用域

作为一项免费奖励,他们会自动在此证书中提供firstdomain.com(不含www)-但仅限于此主域,而不是备用域

这就是为什么重定向从工作,而不是为其他人


希望有帮助

我们正在使用多域证书()。不过它是在“firstdomain.com”上发布的。这可能就是为什么它只适用于firstdomain.com的原因吗?我们已联系GeoTrust,正在等待答复。
RewriteCond %{HTTP_HOST} ^firstdomain\.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.firstdomain\.com [NC,OR]