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

.NET: Redirect from domain and subfolder to new domain, retaining path and querystring, using httpredirect in web.config

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

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

我试过了:

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

但这不会删除 "mysite" 子文件夹。它重定向到 https://www.domain2.com/mysite instead of https://www.domain2.com

我也试过创建一个重写规则,但我无法找出有效的输入和正则表达式。

TIA。

您可以使用 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 配置反向路由器的文档。

我们可能漏掉了这一步:

Enabling Reverse Proxy functionality