.NET:使用web.config中的httpredirect从域和子文件夹重定向到新域,保留路径和查询字符串

时间:2019-11-21 09:57:13

标签: c# asp.net web-config http-redirect

我正在尝试将域重定向设置为域迁移的一部分。我的警告是,我要重定向的站点位于更广泛域的子文件夹中。我还需要保留其余的路径和查询字符串。

我需要在web.config中设置重定向以实现以下目的:

我已经尝试过:

<httpRedirect enabled="true" destination="https://www.domain1.com$V$Q" httpResponseStatus="Temporary" exactDestination="true" />

但这不会删除“ mysite”子文件夹。它重定向到https://www.domain2.com/mysite而不是https://www.domain2.com

我也尝试过创建重写规则,但是我无法弄清有效的输入和正则表达式。

TIA。

1 个答案:

答案 0 :(得分:1)

您可以在URL重写中使用两个规则:

<rule name="remove-my-site">
  <match url="^mysite/([/_0-9a-z-]+)"/>
  <action type="Rewrite" url="{R:1}"/>
</rule>
<rule name="domain1-to-domain2">
    <match url=".*" />
    <conditions logicalGrouping="MatchAny">
        <add input="{HTTP_HOST}" pattern="domain1.com" />
    </conditions>
    <action type="Redirect" url="http://www.domain2.com/{R:0}" />
</rule>

您不会使用httpRedirect做到这一点。它用于简单的重写。

您还可以查看Application Request Routing文档,以使用IIS配置反向路由器。

我们可能错过的是这一步:

  

启用反向代理功能