.htaccess将赤裸http和https重定向到www https
问题描述:
我在其中一个域中遇到类似问题。我有裸露和www域的安装SSL证书。.htaccess将赤裸http和https重定向到www https
现在,但是我想将裸体http://domain.com和https://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]
答
你应该用这个规则替换现有规则:
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
线这条规则,并在测试前清除浏览器缓存。
答
我个人会这样做,这将强制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]
如果URL是通过'http:// example.com'那么这个片段将做两个重定向,这是不利于无论是性能还是SEO – anubhava
总是在学习,感谢您的输入@anubhava。必须改变我的方法:P – Lag
在第一条规则中使用https并避免双重重定向。切勿使用['R = 301']进行测试(http://stackoverflow.com/a/9204355/1741542)。 –