【问题标题】:redirect to root_path重定向到 root_path
【发布时间】:2011-09-06 11:21:02
【问题描述】:

我的路线 root 设置为:

root :to => "posts#index", :locale => :en

但是 /en/posts/ 和 /en/posts/index 仍然可以访问,显示来自 root_path 的“重复”内容。如果使用其中一个路径,我想重定向到 root_path。

这样,我可以避免搜索引擎中的重复内容,并且我的用户可以获得更一致的体验:资源仅存在于一个地方且仅存在于一个地方 (REST)。

【问题讨论】:

  • 我现在遇到了同样的问题。你有没有想过这个问题的答案?

标签: ruby-on-rails-3 rest routing


【解决方案1】:

您可以通过编辑您的 routes.rb 文件中的帖子资源来关闭帖子/索引网址,如下所示:

resources :posts, :except => :index

如果这给您带来重定向问题,请阅读有关路由的 rails 指南,特别是 3.12 Redirection 部分

【讨论】:

  • 是的,但是如果我禁用帖子#index,该页面将不再有效。我仍然希望 posts#index 作为 page: 作为根。我只希望它仅在 URL /、/posts 或 /posts/index 之一下可用,而不是全部三个。
【解决方案2】:

我最近通过在我的 routes.rb 中使用以下内容找到了解决此问题的方法:

get "/en/posts" => redirect("/")
resources :posts
root :to => "posts#index", :locale => :en

对 /en/posts 的请求被 301 重定向(永久移动)到根路径

【讨论】:

    猜你喜欢
    • 2015-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-28
    • 1970-01-01
    • 2012-01-04
    • 1970-01-01
    相关资源
    最近更新 更多