Regex URL重写IIS 8.5中的同一主机不同端口

Regex URL重写IIS 8.5中的同一主机不同端口,regex,iis,url-rewriting,Regex,Iis,Url Rewriting,我的服务器有三个网站: 默认网站,端口80(无内容) 网站A,端口81 网站B,端口82 我想使用URL重写访问网站A和网站B,如: 而不是 我已经安装了URL重写和应用程序请求路由模块,并启用了ARR代理 在默认网站上,我使用regex模式/A/(.*)和/B/(.*)创建了两个重写规则: 使用测试功能,我的测试URL无法匹配该模式,但当我尝试使用新模式访问站点时,它成功了 问题:我将采用后面的解决方案,但这是否纯粹是运气使然,我是否应该做些不同的事情 测试功能无法成功匹配我将它们

我的服务器有三个网站:

  • 默认网站,端口80(无内容)
  • 网站A,端口81
  • 网站B,端口82
我想使用URL重写访问网站A和网站B,如:


而不是


我已经安装了
URL重写
应用程序请求路由
模块,并启用了ARR代理

在默认网站上,我使用regex模式
/A/(.*)
/B/(.*)
创建了两个重写规则:

使用测试功能,我的测试URL无法匹配该模式,但当我尝试使用新模式访问站点时,它成功了

问题:我将采用后面的解决方案,但这是否纯粹是运气使然,我是否应该做些不同的事情


测试功能无法成功匹配我将它们提供给服务器时使用的相同URL是否正常?

如果不想透露实际使用的规则,则必须自行调试。我这里有一篇关于ARR的相关但不完全匹配的文章,@Lex Li,我已经更新了我的问题,以显示实际的重写规则。如果您不想透露您使用的实际规则,那么您必须自己调试。我这里有一篇关于ARR的相关但不完全匹配的文章,@Lex Li,我已经更新了我的问题,以显示实际的重写规则。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="WebsiteA" stopProcessing="true">
                    <match url="/A/(.*)" />
                    <action type="Rewrite" url="http://localhost:81/{R:1}" />
                </rule>
                <rule name="WebsiteB" stopProcessing="true">
                    <match url="/B/(.*)" />
                    <action type="Rewrite" url="http://localhost:82/{R:1}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="WebsiteA" stopProcessing="true">
                    <match url="^A(.*)$" />
                    <action type="Rewrite" url="http://localhost:81/{R:1}" />
                </rule>
                <rule name="WebsiteB" stopProcessing="true">
                    <match url="^B(.*)$" />
                    <action type="Rewrite" url="http://localhost:82/{R:1}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>