Apache中将HTTP重定向至HTTPS( 二 )


要将所有HTTP流量重定向至HTTPS,请打开root .htaccess文件,为它添加以下代码:

  1. RewriteEngine On
  2. RewriteCond %{HTTPS} off
  3. RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]
以下是代码的含义:
  • RewriteEngine On—启用重写功能 。
  • RewriteCond %{HTTPS} off—检查HTTP连接,如果条件满足,就执行下一行 。
  • RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]—将HTTP重定向至HTTPS,状态代码为301(永久移动) 。确保更改了域名 。
下面这个例子有一个额外的条件,检查请求是否以www开始 。用它迫使所有访客使用网站的HTTPS非www版本:
  1. RewriteCond %{HTTPS} off [OR]
  2. RewriteCond %{HTTP_HOST} ^www.example.com [NC]
  3. RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]
编辑.htaccess文件时,你不需要重启服务器,因为Apache在每次请求时读取文件 。
结束语
在Apache中,将HTTP重定向至HTTPS的首选方法是在域名的虚拟主机中配置301 redirect 。
原文标题:Redirect HTTP to HTTPS in Apache

【Apache中将HTTP重定向至HTTPS】


推荐阅读