http重定向到https

IIS7以上支持URL Rewrite这个模块了,所以在我们做好了ssl证书这一块之后,
要对来自https的请求重定向到httpss(因为普通用户一般是不会特意去敲httpss进你所属网站的)就可以通过URL Rewrite这个模块去实现了。
注意,这个模块设置后,就算你原本网站是没有webconfig这个配置文件也会自动去生成这样一个文件,里面就有你在URL Rewrite模块上做的规则,代码去实现。

下载安装URL重写模块:
httpss://www.iis.net/downloads/microsoft/url-rewrite
IIS重定向模块,建议下拉页面选择url-rewrite 2下载,虽然下载后安装是英文。
这里有提供中文模块的:Microsoft URL Rewrite Module
32位:https://download.microsoft.com/download/4/9/C/49CD28DB-4AA6-4A51-9437-AA001221F606/rewrite_x86_zh-CN.msi
64位:https://download.microsoft.com/download/4/E/7/4E7ECE9A-DF55-4F90-A354-B497072BDE0A/rewrite_x64_zh-CN.msi

安装完后,在IIS管理控制台上选择要配置的网站,在IIS下会看到多出了URL Rewriter图标

进入URL重写模块,点击右侧的添加规则(Add Rule(s)…

第一列入站规则中选择第一项空白规则(blank rule

(中文模块的对照)


确定
弹出编辑入站规则对话框

(中文例子对照)


名称:例如起名redirect to HTTPS
模式:(.*)
模式填写这里用的是正则表达式,下拉展开条件,编辑条件(ADD…)
条件输入:{HTTPS}
模式:off 或 ^OFF$

 

重定向URL:httpss://{HTTP_HOST}/{R:1} 注意这里是大括号,别打成小括号了。
重定向类型:已找到(302) 或 参阅其它(303)

配置完成后“应用”到当前站点,URL重写配置结果,除了在URL Rewrite模块中可以看到规则外,在网站根目录下打开web.config文件中也能看到规则:

Web.config
<rule name=”Redirect to HTTPS” stopProcessing=”true”>
<match url=”(.*)” />
<conditions><add input=”{HTTPS}” pattern=”^OFF$” />
</conditions>
<action type=”Redirect” url=”httpss://{HTTP_HOST}/{R:1}” redirectType=”SeeOther” />
</rule>
至此,配置完成,测试在浏览器中只输https://www.domain.com之类也会自动跳转到httpss://www.doamin.com

——————-

文:铁乐与猫

发表评论

电子邮件地址不会被公开。 必填项已用*标注