#!与永久链接中的#相反

时间:2011-12-10 00:02:25

标签: url permalinks

我正在设计一个固定链接系统,我只是注意到Twitter和Hipmunk都将其永久链接加上#!作为前缀。我想知道为什么会这样,如果感叹号特别是有原因的话。不会#/同样有效,因为他们毫无疑问使用的框架可以让他们使用正则表达式URL解析器将查询重定向到某些模板吗?

http://www.hipmunk.com/#!BOS.SEA,Dec15.Jan02

http://twitter.com/#!/dozba

我唯一的猜测是因为浏览器使用#链接到锚元素。这是附加感叹号的原因吗?

2 个答案:

答案 0 :(得分:2)

我的猜测是两个页面在他们的JavaScript中使用它来区分#(一个锚的链接)和他们的自定义#!,后者使用Ajax加载一些额外的内容。

在这种情况下,几乎所有其他内容都可以在#符号之后起作用。

答案 1 :(得分:2)

这样做是为了使“AJAX”页面可以抓取[由谷歌]进行索引 - 它不会影响fragment identifier的其他明确定义的语义!< / p>

请参阅Making AJAX Applications Crawlable: Getting Started

  

简而言之,该解决方案的工作原理如下:爬虫找到一个漂亮的AJAX URL(即包含#!hash片段的URL)。然后,它会以略微修改的形式从您的服务器请求此URL的内容。您的Web服务器以HTML快照的形式返回内容,然后由爬网程序处理。搜索结果将显示原始网址。

我确信其他搜索引擎也遵循此主要/协议。

快乐的编码。


此外,至少每个HTML5,实际上有一个ID为“!foo”的元素是完全有效的,所以 帖子中的推理无效。请参阅文章"The id attribute just got more classy"

  

HTML5摆脱了对id属性的额外限制。剩下的唯一要求 - 除了在文档中是唯一的 - 是值必须包含至少一个字符(不能为空),并且它不能包含任何空格字符。