URL 样式:为什么我应该在仅 slug 名称(“/products/[product-name]”)上使用 ids+slug 名称(“/products/[id]-[product-name]”)?

mei*_*ryo 0 rest url web-services

首先是关于我的产品列表的一些详细信息:

  1. 静态,包含大约 400 个项目。
  2. 它不会再增长了。相信我这一点。
  3. 没有重复的项目名称。
  4. 产品的特性不会改变。

基本上将我的产品列表视为元素周期表。我认为将 id 添加到带有“slug 名称”(或任何名称)的 URL 没有任何意义。我宁愿有一个干净的 SEO 友好 URL。有什么我在这里俯瞰的吗?

acd*_*ior 5

这是关于 ID 和 slug 名称的事情:

使用“产品 ID”:

通常,URL 是使用 ID 设计的:

"/products/[product-id]"
example: /products/213
Run Code Online (Sandbox Code Playgroud)

但是它们对于该 URL 中的确切内容的描述太少(我的意思是,不同的 URL 将具有不同的 ID,但仅凭这一点 - 仅通过查看它 - 不会为您提供有关该特定 URL 的任何信息。)

Botoom line:ID-only 不好,因为它几乎没有描述性。

使用“产品名称”:

使用:

"/products/[product-name]"
example: /products/three-legged-walking-oven
Run Code Online (Sandbox Code Playgroud)

其实还不错,注意事项是:

  • 你打算如何将 a 映射[product-name]到 a [product-id]
  • 标题(或[product-name])变化很大,如果有人为旧标题添加书签怎么办?

使用“[product-id]/[product-name]”:

使用:

"/products/[product-id]/[product-name]"
example: /products/213/three-legged-walking-oven
or
"/products/[product-id]-[product-name]"
example: /products/213-three-legged-walking-oven
Run Code Online (Sandbox Code Playgroud)

在这种方法中,您可以通过idURL 部分获取产品。

为您提供两全其美:描述性网址和易于映射的网址和标题(名称)可以更改而不会使旧网址变得无用。

你的场景:

因此,如果您 100% 确定永远不会更改产品名称,则可以继续使用“产品名称”。只需找到一种方法以有效的方式将该“产品名称”映射到“产品 ID”即可。

奖励:请务必查看这篇关于使用 slug 名称和搜索引擎重要性的好文章