在URL多井号(Multiple hash signs in URL)

2019-06-25 01:47发布

或者,也许你把它称为“尖” - #符号。

我已经遇到了一个实例,其中#! 和#在一个网址中同时使用。 从阅读其他文章,包括RFC,我无法理解这是否是一个合法组合与否。 当遇到这样的页面的Mozilla浏览器(Iceweasel在这种情况下)显示的URL作为具有2#的,而浏览器就会显示只有一个,但不久之后管芯(包含页面的标签变得没有反应和崩溃 - 但它可以不连接) 。

现在,我的问题是,是不是合法的一个URL兼得,是它可能的法律和冗余(应该是标准化的),或者是它只是一个错误在Mozilla浏览器? 因此,假设我在做一个AJAX请求,或试图导航浏览器历史记录 - 我该怎么办,如果我遇到这种情况?

RFC-3986: http://tools.ietf.org/html/rfc3986#section-3.4 ,应澄清它...以防万一。

另外: https://developers.google.com/webmasters/ajax-crawling/docs/specification谷歌爬虫是怎么看的东西。

Answer 1:

一个片段的格式只允许斜线,问号,以及pchar秒。 如果你查查RFC,你会看到哈希标记不是有效的pchar

然而,浏览器会尽力通过处理重复哈希值,就好像他们逃脱,你可以通过检查的价值看读非有效的URL window.location.hash (在IE,火狐和Chrome)的

http://www.example.com/hey#foo#bar

这是相同的window.location.hash

http://www.example.com/hey#foo%23bar


Answer 2:

作为@apsillers提到这可能是合法的。 但我会避免,除非必要,因为它可能会导致有关的URL了一定的混乱。

那种网址:

http://www.example.com/hey#foo#bar

似乎真的混乱给我,会更加混乱的普通用户,也许搜索引擎。



文章来源: Multiple hash signs in URL