我在 IIS 10 中使用 ARR。我有一个 ARR 服务器接收“http://wwww.PUBLICDOMAIN/Admin”的请求,但我希望该请求不路由到网络场。相反,我希望它转到专用的“Admin”主机“Http://ADMINHOST/Admin”,但在浏览器 URL 中显示为“Http://wwww.PUBLICDOMAIN/Admin”。感谢您的帮助,谢谢。
这些是我在 ARR 服务器 applicatioHost.config 上设置的规则。请求按预期处理,但浏览器中的 URL 显示“Http://ADMINHOST/Admin”,而不是所需的“Http://wwww.PUBLICDOMAIN/Admin”。
<rule name="Admin Area" enabled="true" patternSyntax="ECMAScript" stopProcessing="true">
<match url="^(admin(/.*)?)$|^(lib_npm/.+)$" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTP_HOST}" pattern="^admin\.wf\.local$" negate="true" />
</conditions>
<action type="Rewrite" url="http://ADMINHOST/{R:0}" />
</rule>
<rule name="ARR_PCRWeb_loadbalance" enabled="true" patternSyntax="ECMAScript" stopProcessing="true">
<match url=".*" ignoreCase="false" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{PATH_INFO}" pattern="^(/admin(/.*)?)$|^(/lib_npm/.+)$" negate="true" />
</conditions>
<action type="Rewrite" url="http://WebFarm/{R:0}" />
</rule>
您需要尝试按如下方式修改您的规则:
<rule name="Admin Area" enabled="true" patternSyntax="ECMAScript" stopProcessing="true">
<match url="^(admin(/.*)?)$|^(lib_npm/.+)$" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTP_HOST}" pattern="^www\.PUBLICDOMAIN$" />
</conditions>
<action type="Rewrite" url="http://ADMINHOST/{R:1}" />
</rule>
条件{HTTP_HOST}用于检查请求是否来自
www.PUBLICDOMAIN
。