6

在一个现在迁移的关于人类可读 URL 的问题中,我允许自己详细说明我的一个小爱好:

当我遇到这样的 URL 时,http://www.example.com/product/123/subpage/456.html我总是认为这是在尝试创建有意义的分层 URL,但它并不完全是分层的。我的意思是,您应该能够一次切掉一个级别。在上面,URL在这个原则上有两个违反:

  1. /product/123是表示为两个级别的一条信息。它将更正确地表示为/product:123(或您喜欢的任何分隔符)
  2. /subpage很可能本身不是一个实体(即,您不能从“无”上升一级)。456.htmlhttp://www.example.com/product/123/subpage

因此,我发现以下更正确:

http://www.example.com/product:123/456.html

在这里,您始终可以一次向上导航一级:

  • http://www.example.com/product:123/456.html — 子页面
  • http://www.example.com/product:123— 产品页面
  • http://www.example.com/- 根

遵循相同的理念,以下内容将是有意义的 [并提供指向产品列表的附加链接]:

http://www.example.com/products/123/456.html

在哪里:

  • http://www.example.com/products/123/456.html— 子页面
  • http://www.example.com/products/123— 产品页面
  • http://www.example.com/products— 产品清单
  • http://www.example.com/- 根

我采用这种方法的主要动机是,如果每个“路径元素”(由 分隔/)都是自包含的1,您将始终能够通过简单地删除 URL 的最后一个元素来导航到“父”。当我想转到父目录时,这就是我(有时)在文件资源管理器中所做的事情。遵循相同的逻辑,用户(或搜索引擎/爬虫)可以做同样的事情。很聪明,我想。

另一方面(这是问题的重要部分):虽然我永远无法阻止用户尝试访问他自己截断的 URL,但我是否错误地断言(并尊重)搜索引擎可能会这样做? 即,期望没有搜索引擎(或实际上:谷歌)会尝试访问http://www.example.com/product/123/subpage(上面的第 2 点)是否合理?(或者我真的只考虑人为因素吗?)

这不是关于个人喜好的问题。这是关于我对爬虫/索引器的期望以及在设计 URL 时我应该在多大程度上考虑非人工 URL 操作的技术问题。

此外,结构“深度”http://www.example.com/product/123/subpage/456.html是 4,其中http://www.example.com/products/123/456.html只有 3。有传言说这个深度会影响搜索引擎排名。至少,有人告诉我。(现在很明显,SEO不是我最了解的。)这(仍然吗?)是真的:层次深度(目录数量)会影响搜索排名吗?

那么,我的“预感”在技术上是合理的,还是应该把时间花在其他事情上?


示例:(几乎)正确地做这件事
很好,所以这几乎是正确的。恰当的例子:配置文件,例如http://stackoverflow.com/users/52162

  • http://stackoverflow.com/users/52162— 单一配置文件
  • http://stackoverflow.com/users— 用户列表
  • http://stackoverflow.com/- 根

但是,配置文件的规范 URL实际上http://stackoverflow.com/users/52162/jensgram看起来是多余的(在两个层次结构级别上表示相同的端点)。替代:(http://stackoverflow.com/users/52162-jensgram或任何其他一贯使用的分隔符)。


1)携带不依赖于“更深”元素的完整信息。

4

1 回答 1

4

这种“http://www.example.com/product:123/456.html”的分层网址与“http://www.example.com/product/123/subpage”一样没用,因为当用户看到您的网址,他们不关心您数据库中的标识符,他们想要有意义的路径。这就是 StackOverflow 将问题标题放入 url 的原因:“http://stackoverflow.com/questions/4017365/human-readable-urls-preferably-hierarchical-too”。

谷歌建议不要替换像“http://www.example.com/?product=123&page=456”这样的常见查询,因为当每个站点都开发自己的方案时,爬虫不知道每个部分的含义,如果它很重要或不。Google 发明了复杂的机制来查找重要的参数并忽略不重要的参数,这意味着您将获得更多的页面到索引中并且将有更少的重复。但是当 Web 开发人员发明他们自己的方案时,这些算法通常会失败。

如果你关心用户和爬虫,你应该使用这样的 url:

此外,搜索引擎对 url 中包含关键字的页面给予更高的评价。

于 2010-10-25T18:03:26.993 回答