利用伪静态解决apache和IIS的http跳转到https


最近https政策的推行,使用SSL证书的香港虚拟主机用户越来越多了,当他们装好证书后,发现另一个困扰的问题出现了:http和https能够同时被访问,如何解决这个问题?

下面分别讲解apache和IIS的伪静态方法,只需要将伪静态文件放到网站根目录下即可。

Apache的http跳转https方法

apache的伪静态是通过.htaccess实现,将.htaccess文件ftp传到网站根目录下:

如果您之前已经有做过伪静态,则将下面.htaccess文件配置代码贴入您文件内相应位置:

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

IIS7、IIS8的http跳转https方法

IIS的伪静态是通过web.config实现,将web.config文件ftp传到网站根目录下:

如果您之前已经有做过web.config伪静态,则将下面web.config文件配置rewrite部分代码贴入您web.config文件内相应位置:

 

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

环境说明

这边再多说两句:上面方法适用于我们的香港空间,如果您是自有windows+iis服务器,还需要为服务器安装IIS伪静态组件后,才能使用上面的方法

这里贴一下IIS伪静态组件-“URL重写” 模块下载地址:
微软下载地址(64位):http://www.microsoft.com/zh-cn/download/details.aspx?id=7435