Asp.net 转发到api的IIS URL重写规则
我在同一台服务器上托管vue.js和asp.net core。 我的管理员只允许通过端口443/https获取流量。 所以我试着让反向氧化(?)运行 所有流量到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.
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不是以/
开头的。谢谢,这实际上有助于让它工作:)如果你已经让它工作了,那么发表你自己的答案并接受它。