Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
人类可读的URL:最好也是分层的?_Url_Seo_Hierarchical_Human Readable_Url Modification - Fatal编程技术网

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

人类可读的URL:最好也是分层的?,url,seo,hierarchical,human-readable,url-modification,Url,Seo,Hierarchical,Human Readable,Url Modification,在一篇关于人类可读URL的文章中,我让自己详细阐述了我的一个小爱好: 当我遇到像http://www.example.com/product/123/subpage/456.html我一直认为这是一种尝试,旨在创建有意义的层次化URL,但这种URL并不完全是层次化的。我的意思是,你应该能够一次切下一层。在上述情况下,URL有两个违反此原则的情况: /product/123是一条信息,表示为两个级别。它将更正确地表示为/product:123(或您喜欢的任何分隔符) /subpage本身很可能不是

在一篇关于人类可读URL的文章中,我让自己详细阐述了我的一个小爱好:

当我遇到像
http://www.example.com/product/123/subpage/456.html
我一直认为这是一种尝试,旨在创建有意义的层次化URL,但这种URL并不完全是层次化的。我的意思是,你应该能够一次切下一层。在上述情况下,URL有两个违反此原则的情况:

  • /product/123
    是一条信息,表示为两个级别。它将更正确地表示为
    /product:123
    (或您喜欢的任何分隔符)
  • /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/
      -根目录
    我采用这种方法的主要动机是,如果每个“路径元素”(由
    /
    分隔)都是自包含的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/
      -根目录
    但是,配置文件的默认值实际上是
    http://stackoverflow.com/users/52162/jensgram
    这似乎是多余的(在两个层次上表示相同的端点)。备选方案:
    http://stackoverflow.com/users/52162-jensgram
    (或始终使用的任何其他分隔符)



    1) 包含不依赖于“更深层”元素的完整信息。

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

    谷歌建议不要用“搜索引擎”之类的常用查询替换http://www.example.com/?product=123&page=456因为当每个站点开发自己的方案时,爬虫不知道每个部分的意思,不管它是否重要。谷歌已经发明了复杂的机制来发现重要的论点,而忽略不重要的论点,这意味着你将在索引中获得更多的页面,并且会有更少的重复。但当web开发人员发明他们自己的方案时,这些算法常常失败

    如果您同时关心用户和爬虫程序,则应使用如下URL:

    • -子页面
    • -产品页面
    • -产品清单
    • -根

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

    您迁移的问题的后续内容在这里的主题中,因为它包含编程问题…?@Pascal Cuoq不,不一定(这不是我的问题,只是我的“答案”)。也许这个问题也应该转移到“专业网站管理员”身上,但我不知道这个问题最好由“专业和热心的程序员”或“专业和热心的网站管理员”来回答;第一级状态为“产品类型”,第二级状态为“id 123”。是的,我同意你的看法