一、概述

经常会遇到 IIS 下域名重定向的需求。这里对两种域名重定向的情况做下说明。

如下图所示,第一种情况是把 http 重定向到 https;第二种情况是把 https 重定向到 https。

image.png

第一种情况网上介绍资料比较多,第二种情况资料比较少,而且好多无法实现效果。下面针对这两种情况我收集了两种重定向的方法,全部测试可行。

这里需要注意的是 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 程序就会出现以下两个图标。

image.png

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>

设置完成!

三、参考文章

1.redirect https to https on another server.


最后更新时间:2019/7/15 9:36:08