如何使用iis重写?

如何使用iis重写?,iis,url-rewriting,Iis,Url Rewriting,我想实现对www.aaa.com:53000的访问,重写为www.bbb.com:44000。 但我是根据文件制定规则的 <rule name="rewrite www.aaa.com" stopProcessing="true"> <match url="^(.*)" negate="false" /> <conditions> <add input="{HTTP_HOST}" pattern="www

我想实现对www.aaa.com:53000的访问,重写为www.bbb.com:44000。 但我是根据文件制定规则的

   <rule name="rewrite www.aaa.com" stopProcessing="true">
      <match url="^(.*)" negate="false" />
      <conditions>
          <add input="{HTTP_HOST}" pattern="www.aaa.com" />
          <add input="{SERVER_PORT}" pattern="53000" />
      </conditions>
      <action type="Rewrite" url="www.bbb.com:44000" logRewrittenUrl="false" />
    </rule>

然后,所有静态文件路径都报告错误404。 我不确定我应该那样使用它


您可以使用反向代理规则模板创建如下规则:

 <rule name="ReverseProxyInboundRule2" stopProcessing="true">
                <match url="(.*)" />
                <conditions>
                    <add input="{CACHE_URL}" pattern="^(https?)://" />
                </conditions>
                <action type="Rewrite" url="{C:1}://www.bbb.com:44000/{R:1}" />
            </rule> 



  • 我已经解决了这个问题,但我发现它只是替换了域名,而不是端口。实际地址是www.bbb.com:53000。为什么?这不再是一个简单的重写,所以您需要配置一个完整的反向代理,谢谢,我已经根据文档设置了代理,但是在项目中获取Request.QueryString时,参数会重复。例如:Request.QueryString={id=3035&dt=637223740906838254},在反向代理请求之后。QueryString=QueryString={id=3035&id=3035&dt=637223742774554116&dt=637223742774554116},那么我还需要设置什么吗?我发现了问题,我正在使用{Request_URI}/>,将{Request_URI}替换为{R:1}解决了这个问题。我想知道为什么?@AidenYan您可以将您的解决方案作为答案发布,并在帖子上标记。它将帮助其他面临类似问题的人。