2016-07-06 203 views
1

我在其中一个域中遇到类似问题。我有裸露和www域的安装SSL证书。.htaccess将赤裸http和https重定向到www https

现在,但是我想将裸体http://domain.comhttps://domain.com重定向到https://www.domain.com

我在我的.htaccess这个规则,但它涵盖了重定向,当您访问的网站明确与https://domain.com,但是,参观http://domain.com时,重定向到http://www.domain.com代替https://www.domain.com

RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$ 
RewriteCond %{HTTPS}s ^on(s)| 
RewriteRule^http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

回答

0

你应该用这个规则替换现有规则:

RewriteEngine On 

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

保持正下方RewriteEngine On线这条规则,并在测试前清除浏览器缓存。

0

我个人会这样做,这将强制WWW和HTTPs的一切。

RewriteEngine On 

#Force WWW on everything 
RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 

#Force HTTPS on everything 
RewriteCond %{HTTPS} !=on 
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L] 
+0

如果URL是通过'http:// example.com'那么这个片段将做两个重定向,这是不利于无论是性能还是SEO – anubhava

+0

总是在学习,感谢您的输入@anubhava。必须改变我的方法:P – Lag

+0

在第一条规则中使用https并避免双重重定向。切勿使用['R = 301']进行测试(http://stackoverflow.com/a/9204355/1741542)。 –

相关问题