htaccess 多个域重定向到 https://www 和特定文档根目录

htaccess multiple domains redirect to https://www and to specific document root

我有 3 个 LIVE 域,它们指向同一个文档根目录,CMS 在其中用自己的内容处理每个域。

我现在需要使用 WWW 将所有 3 个域重定向到 HTTPS,并且可以选择在将来更改每个域的文档根目录。

示例需要发生的事情:

http://domain1.com => https://www.domain1.com

http://www.domain1.com => https://www.domain1.com

domain2.com 和 domain3.com

也必须发生同样的情况

所有三个域的文档根目录是 /cms-1.1/

将来 domain1.com 可能会更改为新的文档根目录 /cms-2.1/ 但对于其余域,文档根目录将保持不变 /cms-1.1/

我可以为每个域单独或组合编写一个或多个规则吗??

到目前为止我来到这里:

但这行得通吗???由于所有三个域都处于活动状态,因此我不需要任何停机时间...

您可以使用此通用代码(未测试)

# https mechanism
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

#none www to www.
RewriteCond %{HTTP_HOST} ^(?!www\.)(.+) [NC]
RewriteRule ^(.*) https://www.%1%{REQUEST_URI} [R=301,NE,L]

#Document root each domain
RewriteCond %{HTTP_HOST} ^domain1.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.domain1.com$
RewriteCond %{REQUEST_URI} !^/cms-1.1/*$
RewriteRule ^(.*)$ /cms-1.1/ [L]