【问题标题】:Why does Twitter use a hash and exclamation mark in URLs, and how do they rewrite search URLs?为什么 Twitter 在 URL 中使用井号和感叹号,它们如何重写搜索 URL?
【发布时间】:2012-04-26 03:10:49
【问题描述】:

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

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

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

谢谢!

【问题讨论】:

标签: ajax twitter fragment-identifier


【解决方案1】:

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

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

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

【讨论】:

  • 实际上,我意识到问题的第二部分仍未得到解答。也就是说,他们是把用户从“/search”重定向到“/#!/search”,还是把用户发送到“/search”,并在页面上使用JS重写URL?
【解决方案2】:

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

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

【解决方案3】:

然后回答第二部分:它会将您重定向到 /#!/search。

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

是的,JavaScript 会在目标页面上提取您的所有详细信息,但无论您被重定向到哪里。

【讨论】:

  • 哈哈。啊,你喜欢幽默感!
  • 仅供参考,我没有投反对票,我只是认为这样做的人就是因为这个。这让我笑了:)
猜你喜欢
  • 2013-08-13
  • 2011-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多