16 javascript url seo http
或许你称之为"尖锐" - #符号.
我遇到过一个实例,#!和#在一个URL中同时使用.从阅读其他文章,包括RFC,我无法理解这是否是合法的组合.当遇到这样的页面时,Mozilla浏览器(在这种情况下为Iceweasel)将URL显示为2#,而Chrome只显示一个,但不久之后就会消失(包含该页面的选项卡变得无响应并崩溃 - 但可能无法连接) .
现在,我的问题是,在一个URL中同时使用它们是合法的还是冗余的(应该规范化),还是仅仅是Mozilla浏览器中的错误?所以,假设我正在制作一个AJAX请求,或试图浏览浏览器历史记录 - 如果我遇到这种情况,该怎么办?

RFC-3986:http://tools.ietf.org/html/rfc3986#section-3.4,应该澄清它......以防万一.
另外:https://developers.google.com/webmasters/ajax-crawling/docs/specification Google抓取工具如何查看内容.
aps*_*ers 14
片段的格式仅允许斜杠,问号和pchars.如果查找RFC,您将看到哈希标记无效pchar.
但是,浏览器会尽量通过处理重复哈希来读取无效的URL,就像它们被转义一样,您可以通过检查window.location.hash(在IE,Firefox和Chrome中)的值来查看
http://www.example.com/hey#foo#bar
Run Code Online (Sandbox Code Playgroud)
这是相同window.location.hash的
http://www.example.com/hey#foo%23bar
Run Code Online (Sandbox Code Playgroud)
Zap*_*oid 10
我的答案是明确的“否”,至少在参考RFC 3986时是如此。但你不能只看 3.4
第 3 节定义 URI 的结构如下:
foo://example.com:8042/over/there?name=ferret#nose
\_/ \______________/\_________/ \_________/ \__/
| | | | |
scheme authority path query fragment
Run Code Online (Sandbox Code Playgroud)
(我只取了上半部分,与 URL 相关)
因此,要回答您的问题,您必须查看所有部分:
ALPHA *( ALPHA / DIGIT / "+" / "-" / ".")因此,到目前为止,除了终止 URI 之外,不允许使用任何哈希值,如果想使用至少一个哈希值,这不是我们想要的;-)
最后:
总结一下:在一个合规的 URL(或 URI)中只允许有一个“#”作为 URL 片段的标记。特别是应该在路径中的哈希符号(至少从外观上看,因为后面有斜杠)是有问题的,因为它们正式终止了路径部分。
这可能会导致问题,例如在使用此功能的单页应用程序中,因为哈希后的导航是在客户端而不是服务器上完成的。在这种情况下,SPA 应确保它在接收时正确处理 URL 的其余部分,其中可能包括可能的(特定于浏览器的)URL 编码的查询和片段。
| 归档时间: |
|
| 查看次数: |
14547 次 |
| 最近记录: |