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

IIS:使用相对URL时Url Redirect无法正常工作的问题求助

IIS HTTP转HTTPS重定向问题解决方案

问题根因

你勾选「SSL必填」选项后,IIS会在URL Rewrite规则执行之前直接拦截所有未加密的HTTP请求并返回403错误——这就是输入不带http://的域名时,重定向规则根本没机会触发、直接跳转到403页面的原因。只有明确输入http://site.domain.com时,因浏览器请求处理的细微差异,规则才得以执行。

解决步骤

1. 关闭「SSL必填」选项

进入网站的SSL设置界面,取消「SSL必填」的勾选。这一步能让HTTP请求顺利到达URL Rewrite模块,而不是被IIS直接阻断。

2. 优化URL Rewrite规则

在原规则基础上添加redirectType="Permanent"(301永久重定向,更符合SEO规范),确保覆盖所有HTTP请求场景:

<rule name="HTTPS redirect" stopProcessing="true">
    <match url="(.*)" />
    <conditions>
        <add input="{HTTPS}" pattern="^OFF$" />
    </conditions>
    <action type="Redirect" url="https://{HTTP_HOST}/{REQUEST_URI}" appendQueryString="false" redirectType="Permanent" />
</rule>

3. 可选:增强规则覆盖端口场景

如果需要兼容显式指定80端口的请求(比如site.domain.com:80),可以调整条件为MatchAny,同时检查端口:

<rule name="HTTPS redirect" stopProcessing="true">
    <match url="(.*)" />
    <conditions logicalGrouping="MatchAny">
        <add input="{HTTPS}" pattern="^OFF$" />
        <add input="{SERVER_PORT}" pattern="^80$" />
    </conditions>
    <action type="Redirect" url="https://{HTTP_HOST}/{REQUEST_URI}" appendQueryString="false" redirectType="Permanent" />
</rule>

4. 验证规则生效

重启IIS站点后,测试以下场景:

  • 输入site.domain.com → 自动跳转至https://site.domain.com
  • 输入http://site.domain.com → 正常跳转至HTTPS
  • 输入http://site.domain.com/test → 跳转至https://site.domain.com/test

补充提醒

「SSL必填」适合已完全移除HTTP访问的场景,但要实现HTTP到HTTPS的平滑重定向,必须让URL Rewrite先处理请求,所以不能启用这个选项。用规则强制跳转更灵活,还能兼顾SEO需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 10:55:21