IIS 将多个 URL 重写到端口

IIS 将多个 URL 重写到端口

我有两个进程/应用程序在端口 8888 和端口 8890 上运行。

我可以在我的 Windows 服务器中访问它们http://本地主机:8888&http://本地主机:8890

我目前正在使用 IIS GUI 重写 URL。已安装应用程序请求路由 (ARR) 和 URL 重写。

我已经成功地重写或重定向所有到达服务器到一个端口的请求——本质上我将“*”通配符映射到“http://本地主机:8888/{R:0}'并且当我访问时它可以工作http://网站

我如何将其扩展到以下场景:

http://网站/solution1/应重定向到端口 8888 & http://网站/solution2/应重定向到端口 8890

请帮忙。

答案1

类似这样的操作(在你的 web.config 中)应该可以工作:

<rule name="solution1" stopProcessing="true">
    <match url="^(solution1/)(.*)" />
    <action type="Rewrite" url="http://localhost:8888/{R:2}" />
</rule>
<rule name="solution2" stopProcessing="true">
    <match url="^(solution2/)(.*)" />
    <action type="Rewrite" url="http://localhost:8890/{R:2}" />
</rule>

如果我没记错的话,{R:0}将匹配整个 URL,所以你在本例中不希望出现这种情况。相反,使用()定义的“捕获组”;{R:2}将是一切之后solution1/solution2/

如果您打算使用 IIS GUI,我希望您能够找到需要填写的字段;它们与您已经使用的字段相同,只是参数不同。

相关内容