IIS 重写/应用程序请求路由 (ARR) 半工作

IIS Rewrite / Application Request Routing (ARR) Half-working

我的重写中有几条规则,包括已经工作了一年多的 ARR,现在几乎就像 web.config 文件中的顶级规则不再以正确的顺序调用。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="AuthRoute" stopProcessing="true">
          <match url="(auth$|auth/(.*))" />
          <action type="Rewrite" url="http://localhost:8083/auth/{R:2}" />
        </rule>
        ...
        <rule name="Non-File Routes" stopProcessing="true">
          <match url=".*" />
          <conditions logicalGrouping="MatchAll">
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
          </conditions>
          <action type="Rewrite" url="/index.html" />
        </rule>
      </rules>
    </rewrite>

  </system.webServer>
</configuration>

如您所见,我有一个单独的 /auth 路由,它反向代理到为 /auth 中的所有内容设计的不同应用程序......在这种情况下,有几个文件 foo.HASH.cssfoo.HASH.js 实际上在那里,后端应用程序正在为它们服务,但前端正在获取 /index.html.

的父应用程序(通过 IIS)

一些文件被正确地反向代理,而另一些则没有。很奇怪,我不确定是 windows/iis 更新启动了这个还是什么。

事实证明,被反向代理的应用程序的内容并未使用路径前缀发布。由于浏览器未在列表中显示完整路径,因此遗漏了来自根目录的加载。