2012-01-25 30 views
1

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

例如:

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

这意味着你可以去

server.com/post/show/1234/tag_title-whatever 

访问后#节目,但你也可以通过将

server.com/post/show?id=1234&tag_title=tag_title-whatever 

访问后#秀这是一个简单的例子,但你明白了。这不会造成搜索引擎问题吗?如果我没有错,那么这两个网站可能会被视为被骗网页。

有没有办法来防止这种情况,就像告诉Rails访问定义的路由只有它们被定义的方式?

+0

如果路由是post /:id/show比替代查询字符串方法不起作用。 – klochner

回答

1

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

这就是说,我甚至不确定它是否会影响他们是否最终将其编入索引。

相关问题