【发布时间】:2012-02-18 19:28:45
【问题描述】:
我注意到,在 routes.rb 文件中定义路由时,您实际上可以以不同的方式访问您定义的同一个 controller#action。
例如:
map.connect "post/show/:id/:tag_title", :controller => "post", :action => "show", :requirements => {:id => /\d+/}
这意味着您可以访问 post#show 访问
server.com/post/show/1234/tag_title-whatever
但您也可以访问 post#show,前往
server.com/post/show?id=1234&tag_title=tag_title-whatever
这是一个简单的案例,但你明白了。这不会导致搜索引擎出现问题吗?如果我没记错的话,这 2 个网址可能会被视为欺骗页面。
有没有办法防止这种情况发生,比如告诉 Rails 仅按照定义的方式访问定义的路由?
【问题讨论】:
-
如果路由是 post/:id/show 而不是备用查询字符串方法。
标签: ruby-on-rails routes