2

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

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

对项目使用 pk:

http://example.com/add/253

或使用独特的蛞蝓:

http://example.com/add/unique_item_slug

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

4

3 回答 3

6

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

http://example.com/products/my_awesome_widget

比......高

http://example.com/products/423

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

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

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

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

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

于 2013-01-30T07:14:12.180 回答
0

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

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

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

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

于 2013-01-30T05:57:15.027 回答
0

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

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

没有人会猜到这个

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

于 2013-01-30T08:54:58.890 回答