htaccess主域名为https,子域名为http

时间:2017-09-19 19:18:10

标签: .htaccess redirect mod-rewrite

我现在已经尝试在我的.htaccess文件中使用2天了,但我无法正常使用它。

我在公司工作,他们需要这些特定的重定向到他们的网站和子域名,因为他们的joomla设置需要它。

所有情景:

主域名

http://www.my-main.be - > https://www.my-main.be

http://my-main.be - > https://www.my-main.be

https://www.my-main.be - > https://www.my-main.be

https://my-main.be - > https://www.my-main.be

子域

http://www.mysub.my-main.be - > http://mysub.my-main.be

http://mysub.my-main.be - > http://mysub.my-main.be

https://www.mysub.my-main.be - > http://mysub.my-main.be

https://mysub.my-main.be - > http://mysub.my-main.be

请注意:

  • mysub可能已修复,但首选动态,因此所有子域都转到http://。
  • 在主域名中使用www
  • 非常重要
  • 将www从子域名中删除很重要

这可能吗?

如果我没有充分解释这一点,请发表评论,我会更多地澄清它。

提前致谢

2 个答案:

答案 0 :(得分:0)

您可以将这些规则放在RewriteEngine行:

下方
RewriteEngine On

# for main domain
RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^(?:www\.)?(my-main\.be)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L,NE]

# for sub domain
RewriteCond %{HTTP_HOST} ^www\. [NC,OR]
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^(?:www\.)?(mysub\.my-main\.be)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L,NE]

# rest of rules go here

清除浏览器缓存后进行测试。

答案 1 :(得分:0)

请检查下面的规则,这两个规则也适用于动态子域

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [L,NE,R=301]

RewriteCond %{HTTP_HOST} ^www\. [NC,OR]
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^(?:www\.)?((.*))$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]