重写URL以指向IIS中的其他站点

重写URL以指向IIS中的其他站点,iis,url-rewriting,url-rewrite-module,iis-8.5,Iis,Url Rewriting,Url Rewrite Module,Iis 8.5,我在IIS 8.5中设置了两个站点,为了简单起见,让我们调用测试1和测试2 测试1可以在test1.mydomain.com上访问,而测试2可以在test2.mydomain.com上访问,但我希望它也可以在test1.mydomain.com/app上获得 这不应该是重定向,而是重写-当用户查看测试2站点时,他们应该在浏览器地址栏中看到URLtest1.mydomain.com/app,并且所有路径都应该将其用作基本URL,例如test1.mydomain.com/app/page1 我希望U

我在IIS 8.5中设置了两个站点,为了简单起见,让我们调用测试1测试2

测试1可以在
test1.mydomain.com
上访问,而测试2可以在
test2.mydomain.com
上访问,但我希望它也可以在
test1.mydomain.com/app
上获得

这不应该是重定向,而是重写-当用户查看测试2站点时,他们应该在浏览器地址栏中看到URL
test1.mydomain.com/app
,并且所有路径都应该将其用作基本URL,例如
test1.mydomain.com/app/page1

我希望URL重写模块可以简化这一过程,但似乎无法重写域,只能重写路径:

    <rule name="test2" stopProcessing="true">
        <match url="^app(/.*)?$" />
        <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
        <action type="Rewrite" url="test2.mydomain.com{R:1}" appendQueryString="false" />
    </rule>

将其添加到test1的web.config中会导致404错误,我认为这是因为它将URL重写为
test1.mydomain.com/test2.mydomain.com


如何重写指向测试2站点的URL?无法使用URL重写重写域名,URL重写只能重写域名后面的内容。

您可以在ARR中使用反向代理来实现此功能:

以下是配置反向代理的步骤:

  • 如果尚未安装,则需要先安装它

  • 成功安装后双击ARR:

  • 设置反向代理:
  • 启用反向代理:
  • 最后,在站点中配置URL重写:
  • 有关“带URL重写的反向代理v2和应用程序请求路由”的更多信息,请参阅此

    更新:

    <action type="Rewrite" url="http://test2.mydomain.com{R:1}" appendQueryString="false" />
    
    您可以启用FRT以查看重写的URL是什么

    下面是一个演示:

    您可以尝试使用此规则:

    <rule name="test2" stopProcessing="true">
            <match url="^app(/.*)?$" />
            <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
            <action type="Rewrite" url="http://test2.mydomain.com{R:1}" appendQueryString="false" />
        </rule>
    
    
    
    使用此操作:

    <action type="Rewrite" url="http://test2.mydomain.com{R:1}" appendQueryString="false" />
    
    
    

    别忘了添加http://。

    错误3,我在ARR中启用了代理,但这次重写仍然将我重定向到404页面,所以我认为我的重写规则一定有问题。有没有一种简单的方法可以找到重写生成的完整URL?我更新了我的回复。啊,我使用的是IIS6,所以很遗憾我没有这个功能。我将更新我的原始问题以包含此信息。我将更新我的答复。我感到困惑。实际上,我使用的是运行在Windows Server 6.2上的IIS 8.5,只是没有安装失败的请求跟踪。我已经安装并更新了我的问题。不幸的是,失败的请求日志不包含重写的URL,搜索“重写操作”不会得到任何结果。