Asp.net 转发到api的IIS URL重写规则

Asp.net 转发到api的IIS URL重写规则,asp.net,asp.net-core,web,iis,Asp.net,Asp.net Core,Web,Iis,我在同一台服务器上托管vue.js和asp.net core。 我的管理员只允许通过端口443/https获取流量。 所以我试着让反向氧化(?)运行 所有流量到https://pim.test.de应转到此web.config的网站。但是流向包含/api/的链接的流量,如https://pim.test.de/api/service/getinfoall 应转发到端口44310上的站点,在那里可以访问ASP.net核心应用程序。因此,它应该在内部将请求重新路由到https://pim.test.

我在同一台服务器上托管vue.js和asp.net core。 我的管理员只允许通过端口443/https获取流量。 所以我试着让反向氧化(?)运行

所有流量到
https://pim.test.de
应转到此web.config的网站。但是流向包含
/api/
的链接的流量,如
https://pim.test.de/api/service/getinfoall
应转发到端口44310上的站点,在那里可以访问ASP.net核心应用程序。因此,它应该在内部将请求重新路由到
https://pim.test.de:44310/api/service/getinfoall

我做错了什么

  <system.webServer>
    <rewrite>
      <rules>

        <rule name="redirecting to port 44310">
          <match url="/api/(.*)" />
          <action type="Rewrite" url="https://pim.test.de:44310/api/{R:1}" logRewrittenUrl="true" />
        </rule>
      </rules>
    </rewrite>

@Lex Li找到了正确的解决方案。我只需在
match
标记中的
api
之前删除
\

 <system.webServer>
    <rewrite>
      <rules>
        <rule name="redirecting to port 44310">
          <match url="api/(.*)" />
          <action type="Rewrite" url="https://pim.test.de:44310/api/{R:1}" logRewrittenUrl="true" />
        </rule>
      </rules>
    </rewrite>


您可以将两者放在一个项目中并进行部署。请先试用模板,然后复制/粘贴代码。@LexLi感谢您的回复,但在这种情况下,这不是一个选项。主要原因之一是,我们将庞大的后端拆分为多个使用网关的微服务,以减少停机时间、更好的独立开发、更小的可组织代码库等。对于前端,我们使用来自quasar.dev框架的特殊CLI,它也与asp.net项目不兼容。然后,请使用FRT了解您的规则有什么问题,一看您在
match
标记中设置了错误的值,因为请求URL不是以
/
开头的。谢谢,这实际上有助于让它工作:)如果你已经让它工作了,那么发表你自己的答案并接受它。