Asp.net mvc 3 301将原始URL请求重定向到路由URL

Asp.net mvc 3 301将原始URL请求重定向到路由URL,asp.net-mvc-3,url-rewriting,seo,url-routing,Asp.net Mvc 3,Url Rewriting,Seo,Url Routing,我正在使用我的Global.asax文件中的以下代码进行url重写: routes.MapRoute( "BlogArticle", "Blog/Article/{filename}", new { controller = "Blog", action = "Article" } ); 这表示以下URL: /博客/文章/博客文章标题 将加载以下操作: /博客/文章?文件名=

我正在使用我的
Global.asax
文件中的以下代码进行url重写:

routes.MapRoute(
               "BlogArticle",
               "Blog/Article/{filename}",
               new { controller = "Blog", action = "Article" }
               );
这表示以下URL:

/博客/文章/博客文章标题

将加载以下操作:

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

我注意到原始URL路径仍将加载我的页面

如果在网站上线数月后将URL重写添加到网站,则可能会导致问题。谷歌将已经对原始URL进行了爬网,当它现在对网站上的新URL进行爬网时,它会将其归类为

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

我认为将这样的东西嵌入ASP.NET MVC的核心是有意义的,因为我不认为仍然可以获得原始URL,而不重定向到重新编写的URL有什么好处。没有这样做有什么原因吗

另外,如何防止原始URL加载内容?有没有办法让它进入重新编写的URL

routes.MapRoute(
               "BlogArticle",
               "Blog/Article/{filename}",
               new { controller = "Blog", action = "Article" }
               );
尝试此操作以获得更清晰的url,然后在操作中请求文件名作为参数

routes.MapRoute(
           "BlogArticle",
           "Blog/Article/{filename}",
           new { controller = "Blog", action = "Article", filename = UrlParameter.Optional}
           );
尝试此操作以获得更清晰的url,然后在操作中请求文件名作为参数

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

这是否解决了相同内容的多个url的问题,或者这只是帮助我整理代码?可能我理解错了你的问题,这有助于你获得一个更干净的url如果你希望此路由处理多个操作,你可以有“Blog/{Article}/{filename}”,新..这是否解决了相同内容的多个url的问题,或者这只是帮助我整理代码?也许我理解错了你的问题,这有助于你获得一个更干净的url如果你想让这条路线处理多个操作,你可以有“Blog/{Article}/{filename}”,新。。