4

您认为在 Rails 中(动态)创建 SEO 友好 URL 的最佳方法是什么?

4

7 回答 7

6

覆盖to_param模型类中的方法,以便将默认数字 ID 替换为有意义的字符串。例如,这个问题在 URL 中使用了best-permalinking-for-rails 。

Ryan Bates 有一个关于这个主题的 Railscast

于 2008-09-17T19:18:21.647 回答
3

ActiveSupport 在 Rails 中有一个新方法来帮助这个 - String#parameterize。相关的提交在这里;提交消息中给出的示例是 "Donald E. Knuth".parameterize => "donald-e-knuth"

结合 John Topley 提到的 to_param 覆盖,这使得更友好的 URL 更容易。

于 2008-09-17T22:00:53.393 回答
2

rsl 的 stringex非常棒,认为 permalink_fu 做得对。

于 2008-09-18T00:59:28.160 回答
2

我主要to_param按照 John Topley 的建议使用。

请记住放置索引,以便您在 to_param 中使用的任何内容都可以快速搜索,否则您最终会在每次访问时进行全表扫描。(不是性能增强器!)

一个快速的解决方法是将 ID 放在其中的某个地方,在这种情况下 ActiveRecord 将忽略它的其余部分,因为它只是在 id 上搜索。这就是为什么你会看到很多带有http://example.com/someController/123-a-half-readable-title之类的 URL 的 Rails 站点。

从我使用 Rails 的经验中获得关于这个和其他 SEO 观察的更多细节,你可能会发现我网站上的这个页面很有用。

于 2008-09-18T02:44:47.487 回答
1

对我来说friendly_id 工作得很好,它也可以生成slug,所以你不需要关心重复的url,也支持范围。

于 2009-07-22T06:52:15.637 回答
0

查看 permalink_fu 插件(从 Mephisto 中提取)... Git 存储库位于此处

于 2008-09-17T19:18:47.310 回答
0

我制作了一个小而简单的 gem,它可以更容易地覆盖 to_param 方法。可以在这里找到。

于 2009-07-22T10:03:53.503 回答