代码之家  ›  专栏  ›  技术社区  ›  jensgram

人类可读的URL:最好也是分级的?

  •  6
  • jensgram  · 技术社区  · 14 年前

    在一个 now migrated question 关于人类可读的网址,我允许自己阐述一个我的爱好马:

    当我遇到这样的网址 http://www.example.com/product/123/subpage/456.html 我一直认为,这是一个尝试创建有意义的分层URL,然而,这并不完全是分层的。我的意思是,你应该能够切掉 一次一级 . 在上面,URL有两个违反此原则的情况:

    1. /product/123 表示为两个级别的信息。它将更准确地表示为 /product:123 (或您喜欢的任何分隔符)
    2. /subpage 很可能不是一个实体本身(也就是说,你不能上升 水平起点 456.html 作为 http://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/ -根

    我使用这种方法的主要动机是,如果每个“路径元素”(由 / )是自给自足的 ,只需删除URL的最后一个元素,就可以导航到“父级”。当我想转到父目录时,这是我(有时)在文件资源管理器中所做的。遵循相同的逻辑,用户(或搜索引擎/爬虫程序)也可以这样做。我觉得挺聪明的。

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

    这不是关于个人偏好的问题。这是一个技术问题,关于爬虫/索引器的期望值,以及在设计URL时应该考虑到非人工URL操作的扩展。

    此外,结构的“深度” http://www.example.com/product/123/subpage/456.html



    http://stackoverflow.com/users/52162

    • http://stackoverflow.com/users
    • http://stackoverflow.com/

    canonical URL http://stackoverflow.com/users/52162/jensgram http://stackoverflow.com/users/52162-jensgram


    推荐文章