【问题标题】:301 Redirect original URL request to routed URL301 将原始 URL 请求重定向到路由 URL
【发布时间】:2012-04-15 23:50:58
【问题描述】:

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

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

这意味着以下网址:

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

将加载以下动作:

/Blog/Article?filename=blog-article-title

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

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

我原以为原来的 URL 现在会自动重定向到重写的 URL,但事实并非如此。

我认为将这样的东西内置到 ASP.NET MVC 的核心中是有意义的,因为我看不到仍然可以获取原始 URL 并且不会重定向到重新编写的 URL 的优势。没有这样做有什么原因吗?

另外,如何防止原始 URL 加载内容?有没有办法让301 permanent redirect 改写后的 URL?

【问题讨论】:

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


    【解决方案1】:
    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 的问题,还是只是帮助我整理代码?
    • Mabye 我错过了您的问题,如果您希望这条路线处理您可以拥有的多个操作 "Blog/{Article}/{filename}", new ,这可以帮助您获得更清晰的 url。 .
    猜你喜欢
    • 2011-01-18
    • 2017-06-01
    • 2021-04-19
    • 1970-01-01
    • 1970-01-01
    • 2019-02-18
    • 2011-08-29
    • 2014-09-30
    • 2013-02-12
    相关资源
    最近更新 更多