Asp.net mvc 301从已知URL在ASP.NET MVC中重定向&x27;s
我有一个.NETMVC1站点,它取代了一个遗留站点。谷歌的索引中仍然有一堆旧的URL,我需要对它们进行301重定向。所有旧URL都是.html或.php页面,我还有一个用于旧URL及其新等价物的db表。我知道我需要做什么,我只是不知道怎么做!这是我的想法Asp.net mvc 301从已知URL在ASP.NET MVC中重定向&x27;s,asp.net-mvc,http-status-code-301,global-asax,Asp.net Mvc,Http Status Code 301,Global Asax,我有一个.NETMVC1站点,它取代了一个遗留站点。谷歌的索引中仍然有一堆旧的URL,我需要对它们进行301重定向。所有旧URL都是.html或.php页面,我还有一个用于旧URL及其新等价物的db表。我知道我需要做什么,我只是不知道怎么做!这是我的想法 在global.asax中的某个位置,使用regexp捕获请求的url 进行数据库查找以找到新的url 如果我们找到了新的url,然后301重定向它。如果不是的话,要么301转到主页,要么抛出404 我试着在自己周围黑客几乎没有运气,加上我能在
非常感谢您提供的任何帮助或链接。如果URL足够清晰,您可以在web.config的urlMappings部分中写入一个相当广泛的条目,然后使用处理程序重新路由流量。我会使用catch all路由,在返回404之前,我会插入逻辑以检查是否需要301
[UrlRoute(Name = "404", Path = "{*path}", Order = 100)]
public ViewResult NotFound(string path)
{
}
我的一个网站也有同样的问题。我通过使用两条路由将所有的.php和.html请求捕获到一个重定向控制器中。在重定向控制器中,我通过从数据库中获取旧的请求URL来匹配URL,并从那里执行301重定向到新的URL。但是,如果新URL的扩展名仍然是.php和.html,则可能会有所不同