我正在构建一个包含产品的网站,每个产品都属于一个或多个类别,这些产品可以嵌套在父类别中。我想拥有SEO友好的URL,如下所示:
我的问题是:依赖于斜杠的存在来区分案例2和3是否安全?我能否始终假设用户在检测到尾部斜杠时需要类别索引,而不是特定产品的页面没有斜杠?
我并不担心实现这个URI方案;我已经用PHP和mod_rewrite做了很多。我只是想知道是否有人知道对这种URL路由的任何异议。浏览器从地址栏中剥离/添加尾随URL,或搜索引擎抓取此类网站时是否存在任何已知问题?任何SEO问题或其他我可能遇到的绊脚石?
答案 0 :(得分:5)
除了您提到的其他陷阱想法之外,用户可能会自己更改URL(通过键入产品或类别)并添加/删除尾随“/".
要解决您的问题,为什么不使用特殊的子类别“ all ”而不是 “mysite.com/category/product”有“mysite.com/category/all/product”?
答案 1 :(得分:5)
对我而言,http://product/
和http://product
代表两种完全不同的资源似乎非常不自然。这很令人困惑,它使您的URL减少hackable,因为很难判断何时应该存在尾随斜杠。
此外,在RFC 3986,统一资源标识符(URI):通用语法中,第6.2.4节中有关于基于协议的规范化的说明,讨论了关于您网站的非人类访问者的特殊情况,例如搜索引擎和网络蜘蛛:
减少假阴性发生率的大量努力是 通常对网络蜘蛛来说具有成本效益。因此,他们实施 在URI比较中更具侵略性的技术。例如, 如果他们观察到诸如
之类的URI
http://example.com/data
重定向到仅在尾部斜杠
中不同的URI他们可能会认为这两者在未来是等价的。 (...)
http://example.com/data/
答案 2 :(得分:3)
区分的一种方法是确保产品页面具有扩展名,但不包括类别或子类别页面。那就是:
这使得它毫不含糊。
答案 3 :(得分:1)
永远不要假设用户会做任何事情,但在任何与网址相关的最坏情况下。
除非您准备在代码中进行重定向,否则假设您具有以斜杠或无斜线结尾的URI的相等机会。只有这样才能确保你的代码是健壮的,因此不必担心这类问题。
答案 4 :(得分:0)
此问题假定向URL添加尾部斜杠会创建引用不同资源的URL。这是错的; URL的语义是它们都引用相同的资源。 base URL中存在尾部斜杠仅changes如何使用该基本URL解释相对URL。