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

IIS 10中HTTPS转HTTP重定向失败(404错误)求助

解决IIS 10中HTTPS转HTTP重定向(适配ADFS SSO本地测试)

嘿,我看你遇到的问题是想用URL重写把HTTPS请求转成HTTP,但当前规则没生效还返回404对吧?这是因为你的配置里有两个核心问题,我给你拆解下并提供解决方案:

你的现有规则问题分析

  1. 动作类型选错了:你用了Rewrite(服务器内部请求改写),但你需要的是让浏览器地址栏跳转到HTTP,这得用Redirect(客户端重定向)才行。Rewrite只会在服务器内部处理,浏览器地址栏还是HTTPS,而且ADFS的回调校验会不通过。
  2. URL拼接有问题:{REQUEST_URI}本身就包含开头的斜杠,你直接拼接成http://{HTTP_HOST}/{REQUEST_URI}会得到类似http://your-domain//path的URL,双斜杠会导致IIS找不到资源,返回404。

正确的URL重写规则

把你现有的规则替换成下面这个配置,就能解决问题:

<rule name="Force HTTP from HTTPS" enabled="true" stopProcessing="true">
    <match url="(.*)" />
    <conditions>
        <add input="{HTTPS}" pattern="on" ignoreCase="true" />
    </conditions>
    <action type="Redirect" url="http://{HTTP_HOST}/{R:1}" redirectType="Temporary" />
</rule>

重点解释:

  • redirectType="Temporary":用302临时重定向,测试阶段改起来方便,后续如果需要永久重定向可以换成Permanent(301)。
  • {R:1}:这是引用match url="(.*)"捕获到的路径部分,能完美避免双斜杠的问题,比用{REQUEST_URI}靠谱多了。

额外要检查的几个点

光改规则可能还不够,你得确认这些配置:

  • URL重写模块是否安装:打开IIS管理器,看看站点的功能视图里有没有「URL重写」图标,如果没有,得先从IIS官方把这个模块装上,不然规则根本不会生效。
  • HTTP绑定是否正确:确保你的站点已经加了HTTP协议的绑定(默认端口80),如果用了主机头,HTTP和HTTPS的主机名要保持一致。
  • ADFS信赖方配置:ADFS那边的信赖方信任设置里,重定向URI必须填你本地的HTTP地址(比如http://your-local-dev-domain/adfs-callback),不然ADFS会直接拒绝回调请求,这也可能表现为404。
  • 站点文件权限:检查下应用程序池的身份有没有权限访问站点的文件,有时候权限不足也会导致看似规则问题的404。

测试步骤

改完配置后,直接在浏览器访问你的HTTPS地址,正常情况下地址栏会自动跳转到HTTP,同时能加载正常页面而不是404。如果还是有问题,打开IIS的「失败请求跟踪规则」,能帮你排查重定向过程中哪里出了问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 10:08:30