假设我们公司有一个网站,该网站是由asp.net web form v1.1开发的。它已经运行了5年。人们通过关键词搜索谷歌,并获得链接到我们的site...it,这意味着谷歌缓存了我们网站的所有页面。现在我们公司计划使用asp.net 4.0开发我们的网站,我们公司的首席技术官希望使用asp.net 4.0的路由功能来进行搜索引擎友好。我知道如何使用url路由feature....here是url路由的小样本片段。

对于我们的新网站页面名称将更改。因此,当有人会搜索谷歌和获取链接,当点击这些链接时,请求将来到我们的网站,但页面找不到将显示,因为页面名称将被更改。那么如何编写这样的逻辑,当旧的请求将到来时,路由将重定向到正确的页面,并从下一次用户将获得正确的页面url的结果为谷歌做永久重定向。因此,我关心的是如何编写逻辑来驱动用户转到右侧页面,如果旧页面不存在,则使用路由将用户重定向到右侧页面。请帮助我的代码和概念。谢谢
发布于 2012-06-13 19:08:50
您需要使用HTTP 301永久重定向
使用.NET框架v4:
Response.RedirectPermanent("NewPage.aspx");编辑:我跳得太快了.一个好的MVC解决方案是:http://www.eworldui.net/blog/post/2008/04/25/ASPNET-MVC-Legacy-Url-Routing.aspx
这将把请求重定向到正确的位置,并返回一个301 ...
发布于 2012-06-13 19:36:12
如果你通过MVC来做这件事,你总是必须管理那些旧的路由。我认为最好的方法是在这种情况下直接使用IIS。IIS中的url模块允许您非常轻松地配置永久重定向。
发布于 2012-06-13 19:09:19
我不是MVC的专家,实际上是一个初学者,所以我想到的解决方案是你必须为你现有的页面注册所有的路由,比如:
routes.MapRoute(
"BooksCategory", // Route name
"products/books.aspx", // URL with parameters
new { controller = "Products", action = "Browse", category = "Books" }
);您可以根据需要对其进行增强。
https://stackoverflow.com/questions/11013428
复制相似问题