HTTP到HTTPS和非WWW到www与多个域

时间:2015-07-30 16:43:54

标签: .htaccess https url-redirection no-www

我无法在任何地方找到答案。

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

在需要HTTPS之前,所有这些工作都可以从非WWW 重定向到 WWW 并在本地使用“ dev。”进行工作。这是我的.htaccess:

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

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

RewriteCond %{HTTP_HOST} ^domain3.com
RewriteRule (.*) http://www.domain3.com/$1 [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/

感谢advange

1 个答案:

答案 0 :(得分:1)

这应该涵盖它!

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/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^domain2.com
RewriteRule (.*) http://www.domain2.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^domain3.com
RewriteRule (.*) http://www.domain3.com/$1 [R=301,L]`
  • 列表项