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

本地IIS中URL Rewrite Module失效,访问API报404求助

IIS URL Rewrite规则失效排查与解决(Angular+ASP.NET 6部署场景)

问题核心

本地/EC2部署Angular+ASP.NET 6 Web API,已确认URL Rewrite Module 2.1启用,API直接通过端口访问正常,但Angular访问/api路径时返回404;单独配置API重写规则到外部地址仍失效,但改为Redirect可正常跳转。

关键原因分析

Redirect是客户端跳转,无需服务器内部转发;而Rewrite(反向代理)依赖Application Request Routing (ARR) 模块——URL Rewrite本身不具备跨站点/端口转发能力,必须搭配ARR启用反向代理功能,这是绝大多数人忽略的配置细节。

修复步骤

1. 安装并启用ARR模块

  • 下载并安装Application Request Routing(可通过IIS管理器的「管理模块」或官方渠道获取)
  • 打开IIS管理器,右键服务器节点 → Application Request Routing Cache → Server Proxy Settings
  • 勾选Enable proxy,保存配置

2. 调整Rewrite规则顺序

将API代理规则放在Angular路由规则之前,避免Angular的全匹配规则优先拦截请求:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <!-- 优先处理API代理 -->
        <rule name="ApiProxyRule" stopProcessing="true">
          <match url="api/(.*)" />
          <action type="Rewrite" url="http://localhost:5004/api/{R:1}" />
          <!-- EC2部署时,目标地址需改为API的内部IP/端口或公网可访问地址 -->
        </rule>
        <!-- Angular路由重写 -->
        <rule name="Angular Routes" stopProcessing="true">
          <match url=".*" />
          <conditions logicalGrouping="MatchAll">
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
            <add input="{REQUEST_URI}" pattern="^/(api)" negate="true" />
          </conditions>
          <action type="Rewrite" url="./index.html" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

3. 额外验证点

  • 权限检查:确保IIS应用程序池身份(如AppPoolIdentity)有权访问目标API地址,本地测试时关闭端口防火墙限制
  • 日志排查:启用IIS站点日志,查看REWRITE_MODULE的执行记录,确认规则是否被命中
  • CORS配置:如果目标API部署在不同域名/端口,需在ASP.NET 6中配置允许IIS站点的域名/IP访问

验证方法

  1. 重启IIS站点后,访问http://localhost/api/user/test,检查是否正常转发到目标API
  2. 查看IIS日志,确认请求被Rewrite模块处理并转发

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 15:17:54