从已知的URL中重定向ASP.NET MVC中的301

时间:2011-01-24 20:56:23

标签: asp.net-mvc http-status-code-301 global-asax

我有一个.Net MVC 1网站取代了遗产。谷歌的索引中仍然有一堆旧的URL,我需要301重定向它们。所有旧的URL都是.html或.php页面,我还有一个旧网址的数据库表及其新的等价物。我知道我需要做什么,我只是不确定该怎么做!这是我的想法

  1. global.asax中的某处使用regexp
  2. 捕获请求的url
  3. 进行数据库查找以希望找到新网址
  4. 如果我们找到了新的网址,那么301会重定向它。如果不是301到主页或扔404
  5. 我试图用自己很少的运气来攻击自己,加上我在网上找到的所有例子都没有真正涵盖这个例子。真的想通过代码执行此操作,而不是向global.asax添加大约80个单独的路由

    非常感谢任何帮助或链接

2 个答案:

答案 0 :(得分:0)

您可以使用Handlers。如果URL足够清楚,您可以在web.config的urlMappings部分写一个非常广泛的条目,然后使用处理程序重新路由流量。

答案 1 :(得分:0)

我会使用catch all route并在返回404之前我会插入逻辑来检查它是否需要301。

[UrlRoute(Name = "404", Path = "{*path}", Order = 100)]
public ViewResult NotFound(string path) 
{

}