.NET:从域和子文件夹重定向到新域,保留路径和查询字符串,在 web.config 中使用 httpredirect
.NET: Redirect from domain and subfolder to new domain, retaining path and querystring, using httpredirect in web.config
我正在尝试将域重定向设置为域迁移的一部分。我需要注意的是,我要重定向的网站位于更广泛域的子文件夹中。我还需要保留其余的路径和查询字符串。
我需要在 web.config 中设置重定向以实现以下目的:
- https://www.domain1.com/mysite to https://www.domain2.com
- https://www.domain1.com/mysite/users to https://www.domain2.com/users
- https://www.domain1.com/mysite/api/getData?inputParam=45 to https://www.domain2.com/api/getData?inputParam=45
我试过了:
<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
我正在尝试将域重定向设置为域迁移的一部分。我需要注意的是,我要重定向的网站位于更广泛域的子文件夹中。我还需要保留其余的路径和查询字符串。
我需要在 web.config 中设置重定向以实现以下目的:
- https://www.domain1.com/mysite to https://www.domain2.com
- https://www.domain1.com/mysite/users to https://www.domain2.com/users
- https://www.domain1.com/mysite/api/getData?inputParam=45 to https://www.domain2.com/api/getData?inputParam=45
我试过了:
<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