HTTP 到 HTTPS 和非 WWW 到具有多个域的 www

HTTP to HTTPS and non-WWW to www with multiple domains

我找不到任何地方的答案。

我有一个包含多个域的页面用于多语言目的,每个域都有一个子域,因此我可以在本地开发 (dev.)

在需要 HTTPS 之前,从 non-WWW 重定向到 WWW 并在本地使用“dev.”。这是(是)我的 .htaccess:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain1.com
RewriteRule (.*) http://www.domain1.com/ [R=301,L]

RewriteCond %{HTTP_HOST} ^domain2.com
RewriteRule (.*) http://www.domain2.com/ [R=301,L]

RewriteCond %{HTTP_HOST} ^domain3.com
RewriteRule (.*) http://www.domain3.com/ [R=301,L]

所以我得到的是:每个非子域都会重定向到 www

现在我需要域 domain1.com 始终重定向到 https 以及 www 当没有子域时,所以 dev. 仍然可以工作。

示例:

http://domain1.com -> https://www.domain1.com/
http://www.domain1.com -> https://www.domain1.com/
http://www.domain2.com -> http://www.domain2.com/
http://domain3.com -> http://www.domain3.com/
http://dev.domain3.com -> http://dev.domain3.com/
http://dev.domain1.com -> https://dev.domain1.com/

这应该涵盖它!

RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^dev\.domain1\.com

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

RewriteCond %{HTTP_HOST} ^(?:[^dev]*|dev.+)(\.domain1\.com)
RewriteRule (.*) https://www%1%{REQUEST_URI}

RewriteCond %{HTTP_HOST} ^domain1.com
RewriteRule (.*) https://www.domain1.com/ [R=301,L]
RewriteCond %{HTTP_HOST} ^domain2.com
RewriteRule (.*) http://www.domain2.com/ [R=301,L]
RewriteCond %{HTTP_HOST} ^domain3.com
RewriteRule (.*) http://www.domain3.com/ [R=301,L]`
  • 列表项