我无法在任何地方找到答案。
我有一个包含多个域的页面,用于多语言目的,每个都有一个子域,因此我可以在本地开发( 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
答案 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]`