我想以 URL 的其他部分保持不变的方式将一个站点重定向到另一个站点。例如:http ://abc.com/test1/doc1.aspx重定向到http://xyz.com/test1/doc1.aspx
谢谢,阿里
我想以 URL 的其他部分保持不变的方式将一个站点重定向到另一个站点。例如:http ://abc.com/test1/doc1.aspx重定向到http://xyz.com/test1/doc1.aspx
谢谢,阿里
您可以像这样转换 URI:
private RedirectToNewHost( Uri uri , string newHost )
{
UriBuilder builder = new UriBuilder( uri ) ;
builder.Host = newHost ;
Response.Redirect(builder.Uri.AbsoluteUri);
}
private RedirectToNewHost( string uri , string newHost )
{
UriBuilder builder = new UriBuilder( uri ) ;
builder.Host = newHost ;
Response.Redirect( builder.Uri.AbsoluteUri );
}
但正如@Dragan_Radivojevic 指出的那样,修改 DNS 以使旧域名成为新域的别名是一个干净的解决方案。然后,如果您要更改域名,请让 Web 服务器查看入站 URI 并弹出一条信息性消息,说明域名已更改,他们应该开始使用新域名。
将第一个 url 中的主机替换为预期的新主机,如下所示
string currentUrl = "http://abc.com/test1/doc1.aspx";
Uri uri = new Uri(currentUrl);
//Result: "http://xyz.com/test1/doc1.aspx"
string newUrl = currentUrl.Replace(uri.Host, "xyz.com");
Response.Redirect(newUrl);
更好的办法是尽可能更改 DNS 记录,以避免过度重定向。
如果您真的想重定向所有内容,只需将其添加到根文件夹中的 web.config
<configuration>
<system.webServer>
<httpRedirect enabled="true" destination="http://xyz.com" httpResponseStatus="Permanent" />
</system.webServer>
</configuration>