« 上一篇下一篇 »

IIS和Apache如何实现HTTP重定向到HTTPS

  文章介绍IIS7和Apache上实现访问HTTP跳转到HTTPS访问的方法,网站设计出于安全的考虑需要使用https协议,但不少用户因为输入网址的习惯不喜欢带上https协议,导致访问异常,因此需要一种重定向功能,实现HTTP网站重定向到HTTPS网站的方法,具体操作如下。

  IIS7

  从微软的官方网站下载HTTP重写模块,安装完毕之后重启IIS服务,之后打开IIS控制台,发现多了一个组件,双击“URL重写”,在右边窗体中选择“添加规则”,并添加一个空白规则,给规则自定义一个名字(名称自便),比如我这里叫“redirect to HTTPS”,模式为:(.*),添加一个条件,条件输入为 {HTTPS},与模式匹配,模式为 ^OFF$,然后配置操作,操作类型为:重定向,重定向到URL为:https://{HTTP_HOST}/{R:1},重定向类型:永久301。

  设置完毕后点击右侧的“应用”,这个 URL 重写就配置完毕了。

  Apache

  修改.htaccess文件,在文件里增加如下几行:

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

  另一种写法是:

RewriteEngine on
RewriteBase /
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R=301,L]

 

使用url重定向实现全站跳转。在此之前,请检查网站根目录是否有web.config文件,如有,请先备份这里的web.config文件,因为以下的配置可能会和web.config里面跳转冲突。

1选择需要实现跳转功能的网站,双击“URL重写”,选择如下图“添加规则”。

2在弹出的对话框选择空白规则,点击确定。

3根据以下截图配置新的规则,红色框框为需要配置或注意的选项。

4展开条件选项,点击添加按钮,添加如下图条件,然后点击确定。

5再次按下图提示,添加条件,点击确定。

6选择执行操作类型,如下图。

7填写完毕,点击右上角应用,应用此规则。

8最后确定完成所有设定,实际上上面的文件是改变了网站根目录web.config的配置文件内容。

以上配置文件内容如下,可以比对

<rule name="Redirect to https"stopProcessing="true">

   <match url="(.*)" />

   <conditions>

   <add input="{HTTPS}" pattern="^OFF$" />

   <add input="{HTTPS_HOST}" pattern="^(localhost)"negate="true" />

   </conditions>

   <action type="Redirect"url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther"/>

</rule>