Rails路由 - 阻止通过不同的URL访问相同的控制器#动作?

时间:2012-01-25 15:52:39

标签: ruby-on-rails routes

我注意到在routes.rb文件中定义路由时,您实际上可以访问以不同方式定义的相同控制器#操作。

例如:

map.connect "post/show/:id/:tag_title", :controller => "post", :action => "show", :requirements => {:id => /\d+/}

这意味着您可以通过转到

来访问帖子#show
server.com/post/show/1234/tag_title-whatever

但你也可以通过转到

来访问#show
server.com/post/show?id=1234&tag_title=tag_title-whatever

这是一个简单的案例,但你明白了。这不会导致搜索引擎出现问题吗?如果我没有错,那么这2个网址可能被视为欺骗页面。

有没有办法防止这种情况,比如告诉Rails按照他们定义的方式访问已定义的路线

1 个答案:

答案 0 :(得分:1)

能够访问某些内容并不意味着它会被Google编入索引。除非另有说明,否则所有Rails辅助函数都使用/post/show/..链接。只要您没有链接到指定的资源,Google抓取内容的可能性非常小。

话虽如此,我甚至不确定如果他们最终将索引编入索引就行了。