0

许多新闻网站的常见做法是在 URL 中同时包含 ID 和 slug。ID 用于查找实际文章,并且包含 slug 用于 SEO 目的。这样,可以更改 slug 以匹配文章标题的更改,而不会使任何以前的书签变得无用。

在 URL 中使用 MongoDB ObjectId 很麻烦,因为它会创建非常长的 URL (http://www.mysite.com/article-504119a051e2726c9aa28ea1/my-article-title.html) - 有更好的解决方案吗?

4

1 回答 1

2

如果有更适合您的用例的选择,则不必使用 MongoDB 的默认 ObjectID 。例如,您可以_id使用更短的值(例如时间戳或递​​增计数器)定义自定义字段(请参阅:如何制作自动递增的 id 字段)。如果您的用例正在发布文章并且每分钟没有数百篇文章,那么您可能会获得一个_id带有随机值连接的 unix 时间戳的合理唯一性。

如果您的 slug 是唯一的(或者您可以接受此限制),您可能会使用 slug 作为_id更短的 url。s的警告_id是它们不能更改,因此单独索引的slug字段将为您提供更大的灵活性。

鉴于您将 slug 用于 SEO 的目标,您可能需要添加一些技巧,以便在提供替代 slug 的情况下将 302 重定向到当前的“规范 url”(具有正确的 slug 字段)。id否则,如果仅检查 URL 的一部分,您可能会因重复内容而招致潜在的 SEO 处罚。

于 2012-09-03T03:25:03.940 回答