如何使用应用程序请求路由路由到专用管理 Web 服务器,同时保留原始请求域

问题描述 投票:0回答:1

我在 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>
iis arr
1个回答
0
投票

您需要尝试按如下方式修改您的规则:

<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

© www.soinside.com 2019 - 2024. All rights reserved.