4

因此,我计划为我的网站设置友好的 URL,其中每个页面都有自己的 ID。所以我发现了人们这样做的两种常见方式:

http://www.example.com/page/123/slug-for-the-page
http://www.example.com/page/slug-for-the-page/123

哪个是首选?支持和反对的论据是什么?我看到在输入 URL 时,第二种形式更容易,因为浏览器更容易从历史记录或书签中自动完成。但对我来说,最后有身份证真的很奇怪。

对于与当前不匹配的任何 slug,我将使用重定向到规范 URL。但是,当 slug 是唯一的时,人们是否也会从具有 slug 但没有 ID 的 URL 进行重定向?例如,重定向http://www.example.com/page/slug-for-the-pagehttp://www.example.com/page/slug-for-the-page/123.

4

2 回答 2

4

在开头使用 ID 的一个优点:

在某些情况下,长 URL 会被截断(例如通过换行符),因此只有 URL 的第一部分是可点击的。现在,如果 ID 在末尾(因此在第二部分),单击 URL 将导致 404。如果 ID 在开头(因此在第一部分),链接通常仍然有效.

例子?来自 Stack Exchange 的纯文本邮件

在此处输入图像描述

如您所见,问题 URL 包含换行符,但 URL 的可点击部分仍包含 ID,因此链接仍然有效。

于 2013-07-27T13:08:41.430 回答
4

首先,一些历史:

这些 URL 的最初原因是人们希望他们的数据库仅由 ID 索引。通过 slug 索引(并强制唯一性)对计算机和程序员来说都是额外的工作。Rails 使这种风格流行起来(/page/1)。

但是这种风格对搜索引擎来说是相当不透明的。所以人们在 ID ( /page/1-slug-for-page) 之后添加了 slug 来帮助搜索引擎(和用户)。但作为结尾的文本无关紧要——重要的是数字。slug 甚至可能不存储在数据库中(有时它是自动生成的),并且它没有被索引以节省空间。

哪个是首选?

对于将 ID 放在 URL 中,任何一种样式都可以,但“先数字后 slug”样式更受欢迎。

对于与当前不匹配的任何 slug,我将使用重定向到规范 URL。但是,当 slug 是唯一的时,人们是否也会从具有 slug 但没有 ID 的 URL 进行重定向?

只需选择IDslug运行它。

1)如果您按 ID 查找,则应忽略 slug(它们仅适用于搜索引擎)。如果您有 ID,您可以轻松地重定向到“真正的”蛞蝓。(更正任何截断的 URL 等)

2)如果你通过 slug 查找,你的 slug 需要是唯一的。(大多数网站按日期划分范围以使这更容易)。一旦你对 slug 进行数据库查找,就不清楚为什么你甚至需要 URL 中的 ID。(它们看起来很丑,而且很随意,所以最好放弃它们。)您提出的是额外的工作(对您和计算机而言),但我不确定它是否有用。

只有高流量站点才需要担心索引 slug 与 ID 索引大小/速度的权衡。即便如此,也可以通过一些技巧将差异最小化。(即不查找 slug,而是查找 slug 的 MD5 的前 8 个字符。)

于 2013-07-26T03:35:10.663 回答