一、概述
经常会遇到 IIS 下域名重定向的需求。这里对两种域名重定向的情况做下说明。
如下图所示,第一种情况是把 http 重定向到 https;第二种情况是把 https 重定向到 https。
第一种情况网上介绍资料比较多,第二种情况资料比较少,而且好多无法实现效果。下面针对这两种情况我收集了两种重定向的方法,全部测试可行。
这里需要注意的是 https 方式需要首先安装域名 SSL 证书,具体关于域名 SSL 证书的申请和安装方法,可查看我之前的文章《IIS8 网站申请、安装和绑定SSL证书说明》。
二、实现方式
1. IIS 插件安装
IIS 实现URL重写和反向代理功能需要安装 ARR 和 URL Rewrite 两个插件。安装要注意先后顺序,首先安装 ARR 再安装 URL Rewrite。插件的下载地址如下所示。
ARR 官网下载地址:https://www.iis.net/downloads/microsoft/application-request-routing
URL Rewrite 官网下载地址:https://www.iis.net/downloads/microsoft/url-rewrite
百度网盘镜像链接: https://pan.baidu.com/s/1z2CjUgaD1D7R_y8TQiYK1Q 提取码: 8jq3
全部安装好以后,重新打开 IIS 程序就会出现以下两个图标。
2. 设置重定向
设置域名重定向前,都需要对每个域名简历相应的网站,网站路径可指向一个空目录。然后在目录下创建一个web.config 文本文件,文件内容如下所示。
如果是 http 重定向到 https,则使用下面的内容(只用修改重定向后的地址):
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="redirect1" stopProcessing="true">
<match url="(.*)" />
<action type="Redirect" url="https://www.aaa.com/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
如果是 https 重定向到 https 则使用如下内容(只用修改重定向后的域名):
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="redirect1" stopProcessing="true">
<match url="(.*)" /> <conditions>
<add input="{CACHE_URL}" pattern="(.+)://" /> </conditions>
<action type="Redirect" url="{C:1}://www.aaa.com/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
设置完成!