为什么Twitter在URL中使用哈希和感叹号,以及它们如何重写搜索URL?

时间:2011-01-19 19:23:50

标签: ajax twitter fragment-identifier

我们理解哈希用于AJAX搜索,但是感叹号?有人知道吗?

此外,其搜索表单的“操作”属性指向“/搜索”,但是当您进行搜索时,网址中会出现哈希感叹号。他们只是从“/ search”重定向到“/#!/ search”吗?

注意: q的第二部分仍然没有答案:也就是说,他们是将用户从“/ search”重定向到“/#!/ search”,还是将用户发送给“/ search”并在页面上使用JS来重写URL? - Crashalot 1月26日23:51

谢谢!

3 个答案:

答案 0 :(得分:31)

它已成为Google建立的事实标准,以确保一致性并使ajax网址可以抓取。

请参阅http://code.google.com/web/ajaxcrawling/docs/getting-started.html

我相信他们正在使用history.pushState。您可以在控制台中执行history.back(),它会引导您返回页面。

答案 1 :(得分:23)

是的,它使用HTTP 302重定向。

顺便说一句,“!”用于消除空哈希的情况。 “http:// url#”将使浏览器滑到顶部。

答案 2 :(得分:9)

接下来回答第二部分:它将您重定向到/#!/ search。

如果您在转到http://twitter.com/britishdev(插头插件)时查看响应标头,则会返回302(临时重定向),并将Location标头设置为“Location:http://twitter.com/#!/britishdev

是的JavaScript然后在目标网页上提取您的所有详细信息,但无论您将其重定向到哪里。