![IIS 7 ARR v3.0 URL 重写不同的域](https://linux22.com/image/804660/IIS%207%20ARR%20v3.0%20URL%20%E9%87%8D%E5%86%99%E4%B8%8D%E5%90%8C%E7%9A%84%E5%9F%9F.png)
我需要接受请求firstdomain.com/example/foo/bar并提供以下内容seconddomain.com/example/foo/bar但我希望最终用户仍然看到firstdomain.com/example/foo/bar在他们的浏览器中。这排除了 301/302 重定向。我以为 URL 重写会起作用,但这必须是同一个域。我认为 ARR 就是我需要的。因此,我安装了 ARR v3.0 并重新启动了我的服务器。现在 ARR v3.0 已经安装,我该如何配置它以执行所需的请求路由?
我应该注意seconddomain.com是第三方托管服务器,而firstdomain.com托管在我们网络上的服务器上。
答案1
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<urlCompression doStaticCompression="false" doDynamicCompression="false" dynamicCompressionBeforeCache="false" />
<rewrite>
<rules>
<rule name="ReverseProxyInboundRule1" stopProcessing="true">
<match url="(.*)" />
<action type="Rewrite" url="http://www.seconddomain.com/{R:1}" />
</rule>
</rules>
<outboundRules>
<rule name="ReverseProxyOutboundRule1" preCondition="ResponseIsHtml1">
<match filterByTags="A, Form, Img" pattern="^http(s)?://www.seconddomain.com/(.*)" />
<action type="Rewrite" value="http{R:1}://www.firstdomain.com/{R:2}" />
</rule>
<preConditions>
<preCondition name="ResponseIsHtml1">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
</preCondition>
</preConditions>
</outboundRules>
</rewrite>
</system.webServer>
</configuration>