请教 .htaccess 域名和协议重定向规则的写法

大家好,我们的一个网站最近升级到 https,以下4种形式的链接都可以正常访问网站:

  1. http://example.com
  2. http://www.example.com
  3. https://example.com
  4. https://www.example.com

现在希望所有的访问都可以被重定向到第4种形式,请教大家 .htaccess 里面的相关规则要怎么写?

评论

写在网站目录下的那个.htaccess文件里,如果有
<IfModule mod_rewrite.c>和</IfModule>
写在这之间,     在这之间的最上面一行还要写RewriteEngine on
下面就是正题了

RewriteBase /
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

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

 

本来想用一个! 就写你这个转向,那样好写,后来一想要是用IP什么的访问可能也被转向了,所以我改了一下,这样网站域名什么的要出问题,用IP访问测试网站就不会被转向了

你好,使用了上面提供的规则代码,并且将 usite.com 部分都修改成了对应的域名(如example.com)。http都能够正确跳转到对应的https,但是http和https协议的 example.com 都没有跳转到 https://www.example.com,麻烦您再看一下

倒数第二行的
RewriteCond %{HTTP_HOST} ^www\.usite\.com$
删了就OK了,刚才也不知道眼睛怎么了,看花了

原文已经更新为正确的了,也就不用删什么倒数第二行了

代码建议写到代码插件里面,有语法高亮看起来会更美观一些。最终有效果的代码如果需要删除倒数第二行的代码,建议最好更新一下。