【问题标题】:Sensible URL patterns in Django-nonrel with MongoDBDjango-nonrel 与 MongoDB 中的合理 URL 模式
【发布时间】:2012-09-01 20:27:23
【问题描述】:

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

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

【问题讨论】:

    标签: django mongodb django-nonrel url-pattern


    【解决方案1】:

    如果有更适合您的用例的选择,您不必使用 MongoDB 的 default ObjectID。例如,您可以使用较短的值(例如时间戳或递​​增计数器)定义自定义 _id 字段(请参阅:How to make an auto-incrementing id field)。如果您的用例正在发布文章,并且每分钟没有数百篇文章,那么您可能会得到一个 _id 的合理唯一性,其中包含一个与随机值连接的 unix 时间戳。

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

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

    【讨论】:

      猜你喜欢
      • 2014-01-24
      • 2012-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-13
      • 2012-05-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多