0

可能重复:
Facebook 和新 Twitter URL 中的 shebang/hashbang (#!) 是什么?

我在几个使用 Ajax 请求加载页面的基于 Web 的应用程序中看到,它们#!在 urls 之后使用而不是#. 例如:/boo.php#!Projects而不是/boo.php#Projects.

我想知道,这样做是否有任何技术原因?

4

3 回答 3

1

这是因为 hashbang/shebang ( #!) 是 Google 用于索引 AJAX 页面的方案:

当您的网站采用该方案时,将被视为“AJAX 可抓取”。这意味着如果您的网站提供 HTML 快照,爬虫将看到您的应用程序的内容。

更多关于谷歌开发者的信息。

于 2012-11-03T08:00:11.980 回答
1

这被称为“hashbang”。Google 使用它来索引基于 Ajax 的网站。那里有更多信息 - http://www.fakingfantastic.com/2011/02/09/using-hash-bangs-in-your-urls/

于 2012-11-03T08:01:48.297 回答
1

目的是使 AJAX 页面可以被 Google 等抓取。

通常,URL 中散列后面的所有内容都与爬虫无关,根本不会发送到服务器。在 AJAX 应用程序中,它曾经被大量用于“模拟”浏览器地址栏中的真实 URL(现在人们通常使用history.pushState.

为了解决不能执行完整 JavaScript 应用程序的限制,Google 发明了一种协议,该协议基本上规定如果遇到包含类似 hashbang 的 URL

http://example.com/foo#!key=value

它可以将其转换为

http://example.com/foo?_escaped_fragment_=key=value

并将其发送到服务器。然后,服务器应返回页面的表示,就像它在 JavaScript 应用程序中显示的那样。最后,让这些应用程序可抓取只是一个惯例。

有关详细信息,请参阅Google提供的有关该主题的文档。

于 2012-11-03T08:07:48.940 回答