旧页面的URL路由和永久页面重定向

时间:2012-06-13 10:58:31

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

假设我们公司的网站是由asp.net web form v1.1开发的。它运行了5年。人们通过关键字搜索谷歌并获得链接来到我们的网站...它意味着谷歌缓存我们网站的所有页面。现在我们公司计划用asp.net 4.0开发我们的网站,我们公司的CTO希望使用asp.net 4.0路由功能,以便搜索引擎友好。我知道如何使用网址路由功能....这里是url路由的小样本片段。

enter image description here

我们的新网站页面名称将会更改。因此当有人搜索谷歌并获得链接时,点击这些链接然后请求将来到我们的网站,但未找到页面将显示,因为页面名称将被更改。所以如何以这样的方式编写逻辑,结果当旧的请求将到来时,路由将重定向到右页,并且还为谷歌进行永久重定向,因为下次用户将获得正确的页面URL。所以我关注的是如何编写将用户驱动到右页的逻辑,如果旧页面不存在,用户将使用路由重定向到右页。请帮我解决代码问题概念。感谢

4 个答案:

答案 0 :(得分:1)

您需要使用HTTP 301永久重定向

使用.NET Framework v4:

Response.RedirectPermanent("NewPage.aspx");

编辑: 我在那里跳得太快......一个好的MVC解决方案是:http://www.eworldui.net/blog/post/2008/04/25/ASPNET-MVC-Legacy-Url-Routing.aspx

这会将请求重定向到正确的位置并返回301 ...

答案 1 :(得分:1)

如果您通过MVC进行,您将始终必须管理这些旧路线。我认为最好的方法是直接使用IIS来实现这种情况。 IIS中的url模块允许您非常轻松地配置永久重定向。

答案 2 :(得分:0)

我不是MVC的专家,实际上是初学者,因此我想到的解决方案是您必须为现有页面注册所有路线,如:

routes.MapRoute(
            "BooksCategory", // Route name
            "products/books.aspx", // URL with parameters
            new { controller = "Products", action = "Browse", category = "Books" }
        );

您可以根据需要进行增强。

答案 3 :(得分:0)

我建议使用这种工具的混合体。你应该返回301,因为这是一个永久性的举动。当谷歌开始扫描你的新网站时,谷歌应该接听它。

我建议您还需要将旧版网址分开,这样它们就不会干扰当前网站。在将来的某个时候,也许当这个新网站成为旧网站时,您将需要整理您的网址。通过了解应用程序所需的内容和什么是SEO可能会有所帮助。

您可以使用IIS及其重定向模块进行SEO重定向。另外,请查看Googles(和Bings)网站管理员工具。它们应该可以帮助您了解搜索引擎在您网站上看到的内容。