【问题标题】:Should I use pk or a unique slug in my url?我应该在我的网址中使用 pk 还是唯一的 slug?
【发布时间】:2013-01-13 21:11:40
【问题描述】:

我想为我在 django 中编写的购物车应用程序编写 URLconf。我想知道构建 URL 的首选方式是什么。

用户可以通过超链接访问 URL(他们不应该在地址栏中键入它)。它将指定的项目添加到他们的购物车。我应该

使用该项目的 pk:

http://example.com/add/253

或使用独特的弹头:

http://example.com/add/unique_item_slug

这些方法是否具有安全性或性能优势。有什么理由喜欢一个吗?

【问题讨论】:

    标签: python django url-routing django-urls


    【解决方案1】:

    使用 slug 的主要原因是 SEO(搜索、引擎优化)。论据是 搜索“我的真棒小部件”将返回结果 -

    http://example.com/products/my_awesome_widget
    

    高于

    http://example.com/products/423
    

    Google 喜欢对人类有意义的网址。理想情况下,您希望 URL 尽可能多地说明页面。查看googles SEO starter guide 中的“改进 URL 的结构”部分。

    由于您要在网上销售商品,因此网络冲浪者可以轻松地在搜索引擎上找到您的产品,这一点很重要。因此,绝对推荐使用蛞蝓。

    仅依赖 slug 的一个缺点是您需要将产品名称强制转换为 唯一 slug。您目前可能没有对产品名称的唯一约束,因此您可能需要做一些工作来创建 slug(通过检查您要创建的 slug 是否已经存在)。一个常见的解决方案是包含 slug 和产品 ID。

    http://example.com/products/my-awesome-widget/243
    

    这样您的 slug 不必是唯一的,但您的 url 仍然包含产品名称。

    【讨论】:

      【解决方案2】:

      在现代 Web 开发中,您可以在 URL 中使用您的 pk,这不是问题。

      我会推荐你​​一个非常宁静的设计:

      http://example.com/product/253/add
      

      http://example.com/product/253 是您的产品详细视图。

      【讨论】:

        【解决方案3】:

        正如 Ewen 所说,将标题直接放在 URL 中的目的是 SEO。 URL 中有关键字对搜索引擎结果有显着影响

        除了人们猜测/预测其他主键的能力之外,在 URL 中使用主键并没有任何重大的安全风险。但你不应该依赖

        没有人会猜到这个

        无论如何作为一种安全措施。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-12-28
          • 1970-01-01
          • 2014-08-06
          • 2019-08-28
          • 1970-01-01
          • 2018-09-05
          • 2012-03-10
          • 2014-05-01
          相关资源
          最近更新 更多