You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在IIS中配置URL重写实现指定HTTP域名跳转至HTTPS地址

搞定IIS URL重定向:HTTP域名转向指定HTTPS地址

嘿,我来帮你调整这个重写规则~你当前的配置有个小问题:<match url="http://test-qa" />这里的写法不对,因为match标签的url属性是用来匹配URL里域名后面的路径部分,不是完整的域名地址。要判断用户访问的是哪两个HTTP域名,得用条件来检查请求的主机头才行。

下面是修正后的完整配置,我会给你拆解每个部分的作用:

<rewrite>
  <rules>
    <rule name="Redirect Test Domains to HTTPS" stopProcessing="true">
      <!-- 匹配所有路径,因为我们只关心域名和协议,不管用户访问的具体路径 -->
      <match url=".*" />
      <conditions logicalGrouping="MatchAny">
        <!-- 第一个条件:当前请求是HTTP协议(不是HTTPS) -->
        <add input="{HTTPS}" pattern="off" />
        <!-- 第二个条件:访问的主机头是test-qa -->
        <add input="{HTTP_HOST}" pattern="^test-qa$" />
        <!-- 第三个条件:访问的主机头是test-qa.domain.com -->
        <add input="{HTTP_HOST}" pattern="^test-qa\.domain\.com$" />
      </conditions>
      <!-- 重定向到目标HTTPS地址,{R:0}会保留原请求的路径和查询字符串 -->
      <action type="Redirect" url="https://test.qa.domain.com/{R:0}" appendQueryString="true" redirectType="Permanent" />
    </rule>
  </rules>
</rewrite>

关键部分解释:

  • <match url=".*" />:匹配所有路径内容,因为我们的重定向逻辑只关注域名和协议,不管用户访问的具体页面是什么。
  • <conditions logicalGrouping="MatchAny">:表示只要满足其中任意一个条件就触发重定向。这里的组合逻辑是:当用户用HTTP访问test-qa 或者 test-qa.domain.com时,就执行重定向。
  • <action>参数说明:
    • redirectType="Permanent":返回301永久重定向,对搜索引擎SEO友好;如果只是临时重定向,可以改成Found(对应302状态码)。
    • {R:0}:会把原请求的路径和查询字符串带到新地址里,比如用户访问http://test-qa/path?foo=bar,会重定向到https://test.qa.domain.com/path?foo=bar。如果不需要保留路径,直接把url写成https://test.qa.domain.com即可。
    • appendQueryString="true":配合{R:0}使用,确保查询字符串被保留;如果不需要,可以设为false。

额外注意事项:

  • 确保你的IIS已经安装了URL重写模块,如果没装,需要通过IIS管理器的「模块」功能安装,或者用Web平台安装程序添加。
  • 确认https://test.qa.domain.com已经在IIS上绑定了有效的SSL证书,否则重定向后会出现浏览器证书错误。
  • 测试前记得清除浏览器缓存,避免旧的重定向缓存影响测试结果。

内容的提问来源于stack exchange,提问作者Spidey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:59:14