首先是关于我的产品列表的一些详细信息:
- 静态的,包含大约 400 个项目。
- 它不会进一步增长。相信我这个。
- 没有重复的项目名称。
- 产品的属性不会改变。
基本上将我的产品列表视为元素周期表。我没有看到将 id 添加到带有“slug name”(或任何名称)的 URL 的任何意义。我宁愿有一个干净的 SEO 友好的 URL。有什么我在这里忽略的吗?
首先是关于我的产品列表的一些详细信息:
基本上将我的产品列表视为元素周期表。我没有看到将 id 添加到带有“slug name”(或任何名称)的 URL 的任何意义。我宁愿有一个干净的 SEO 友好的 URL。有什么我在这里忽略的吗?
这是关于 ID 和 slug 名称的事情:
通常,URL 是使用 ID 设计的:
"/products/[product-id]"
example: /products/213
但是它们对于该 URL 中的确切内容的描述太少(我的意思是,不同的 URL 将具有不同的 ID,但仅此一项 - 仅通过查看它 - 不会为您提供有关该特定 URL 的任何信息。)
底线:仅 ID 不好,因为它几乎没有描述性。
使用:
"/products/[product-name]"
example: /products/three-legged-walking-oven
其实还不错,需要注意的是:
[product-name]
到 a [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
在这种方法中,您通过id
URL 的一部分获取产品。
为您提供两全其美的优势:描述性网址和易于映射的网址和标题(名称)可以在不使旧网址无用的情况下进行更改。
因此,如果您 100% 确定永远不会更改产品名称,则可以继续使用“产品名称”。只需找到一种方法以有效的方式将该“产品名称”映射到“产品 ID”。
奖励:请务必查看这篇关于使用 slug 名称和搜索引擎重要性的精彩文章。
由于 url 末尾的内容是您的应用程序将用于在数据库中查找产品的内容,因此这变成了一个数据库问题。将 id 保留在 url 中可以让您的应用程序通过 id 查找内容。
如果您的产品名称永远不会改变,并且您实际上可以将产品名称用作数据库中的主键(或至少在列上有一个唯一索引),那么您可能会在您的数据库中只使用产品名称网址也是。
通常,最好将一个唯一的、无意义的字段作为主键,因为在大多数情况下,产品名称之类的内容往往会发生变化,即使只是为了修复拼写错误。
我能想到的唯一原因是,要使用 /products/[id]-[name],您需要同时知道 id 和 [name],要使用第二个选项,您只需要知道名称即可。
这里更常见的选择是使用:/products/[id]
我只会考虑 /products/[name] 如果您确信名称是:短、唯一、不包含任何特殊字符(&、?#、/、...)