此方法可以将:IIS7/8 服务器通过web.config 使http强制跳转到https
缺点:此方法仅能实现
http://www.xxine.com 跳转到 https://www.xxine.com
http://xxine.com 跳转到 https://xxine.com
不能实现:
http://www.xxine.com
http://xxine.com
https://xxine.com
均跳转到:https://www.xxine.com
在不少的企业当中,网站设计出于安全的考虑使用了https协议,但同时公司也开放了80协议,不少用户因为输入网址的习惯不喜欢带上https协议,导致访问异常。最近一个客户也要求我帮助解决这个问题,客户的邮件服务器exchange 2010采用https,客户端部署有outlook anywhere,客户现在要求用户访问http://www.xxine.com能够自动跳转到https://www.xxine.com。具体操作如下:
第一步:从微软的官方网站下载HTTP重写模块2.0(这里以64位为例):https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=7435;如下图所示:
第二步:在安装exchange 2010 CAS服务器上安装IIS重写模块rewrite_x64,安装完毕之后重启IIS服务,之后打开IIS控制台,发现多了一个组件,如下所示:
第三步:双击“URL重写”,在右边窗体中选择“添加规则”,并添加一个空白规则,如下所示:
第四步:添加以下规则,如图所示:(黄色部分是需要填写或选择的部分)
第五步:继续填写未填写完成的部分,如下所示:
第六步:点击右边空体上方的“应用”。
第七步:添加http_host条件,如下所示:
最后确定完成所有设定,实际上上面的文件是改变了web.config的配置文件内容或者直接在网站根目录新建web.config 粘贴如下代码进去,保存即可,和上面效果一个样
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="http 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}" /> </rule> </rules> </rewrite> </system.webServer> </configuration>