301将原始URL请求重定向到路由URL

时间:2012-04-02 10:04:38

标签: asp.net-mvc-3 url-rewriting seo url-routing

我在Global.asax文件中使用以下代码进行网址重写:

routes.MapRoute(
               "BlogArticle",
               "Blog/Article/{filename}",
               new { controller = "Blog", action = "Article" }
               );

这表示以下网址:

  

/博客/条/博客,文章标题

将加载以下操作:

  

/博客/条?文件名=博客-文章标题

我注意到原始网址路径仍会加载我的网页。

如果在网站上线几个月后将网址重写添加到网站,则可能会出现问题。 Google已经抓取了原始网址,当它现在抓取网站上的新网址时,它会将其归为duplicate content

我想象原始网址现在会自动重定向到重写的网址,但事实并非如此。

我认为将这样的内容构建到ASP.NET MVC的核心是有意义的,因为我没有看到仍然可以获得原始URL的优势,并且没有重定向到重写的URL。有没有理由不这样做?

另外,如何阻止原始网址加载内容?有没有办法让301 permanent redirect到重写的网址?

1 个答案:

答案 0 :(得分:1)

routes.MapRoute(
               "BlogArticle",
               "Blog/Article/{filename}",
               new { controller = "Blog", action = "Article" }
               );

尝试使用更干净的网址,然后在操作

中请求文件名作为参数
routes.MapRoute(
           "BlogArticle",
           "Blog/Article/{filename}",
           new { controller = "Blog", action = "Article", filename = UrlParameter.Optional}
           );