利用伪静态解决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