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

时间:2012-08-25 08:06:13

标签: 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"))
    {
        HttpContext.Current.Response.Status = "301 Moved Permanently";
        HttpContext.Current.Response.AddHeader("Location", Request.Url.ToString().ToLower().Replace(
                ".co.uk",
                ".com"));
    }

但是当我转到/ pages / about这样的网址时,我的404页面没有被调用。我在web.config中有以下内容:

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

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:0)

如果您的应用程序出错,将会访问 web.config 中的

customErros section。尝试导航到mydomain.co.uk/pages/about时是否有任何错误?

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

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

并查看customErrors sectionerrors element

答案 1 :(得分:0)

我最终使用了global.asax的Application_BeginRequest函数。比尝试重定向到404更清洁。

答案 2 :(得分:0)