301重定向到使用ASP.NET的站点中的所有页面

301重定向到使用ASP.NET的站点中的所有页面,asp.net,Asp.net,我想设置一个从.co.uk站点到.com站点的301重定向,保持相同的页面 因此,访问mydomain.co.uk/pages/about的人应该被重定向到mydomain.com/pages/about 我正在使用ASP.NET和IIS 7.0,运气不太好。我尝试设置一个自定义404文件,其中包含重定向,如下所示: if (HttpContext.Current.Request.Url.ToString().ToLower().Contains(".co.uk")) {

我想设置一个从.co.uk站点到.com站点的301重定向,保持相同的页面

因此,访问mydomain.co.uk/pages/about的人应该被重定向到mydomain.com/pages/about

我正在使用ASP.NET和IIS 7.0,运气不太好。我尝试设置一个自定义404文件,其中包含重定向,如下所示:

    if (HttpContext.Current.Request.Url.ToString().ToLower().Contains(".co.uk"))
    {
        HttpContext.Current.Response.Status = "301 Moved Permanently";
        HttpContext.Current.Response.AddHeader("Location", Request.Url.ToString().ToLower().Replace(
                ".co.uk",
                ".com"));
    }
然而,当我转到诸如/pages/about之类的URL时,我的404页面没有被调用。我的web.config中有以下内容:

<configuration>
  <system.web>
    <customErrors mode="On" defaultRedirect="404.aspx"/>
  </system.web>
</configuration>


有人可以帮忙吗?

如果应用程序出错,将访问web.config中的customErros部分。尝试导航到mydomain.co.uk/pages/about时是否有任何错误

如果没有错误-customErrors不受影响。在这种情况下,您可以尝试
Response.Redirect(“mydomain.com/pages/about”)

请参阅(引用:ASP.NET通过返回302 HTTP状态代码来执行重定向。)


看一看,我最终使用了global.asax的Application_BeginRequest函数。比尝试重定向到404要干净得多请参见

它很好地解决了这个问题