2013-02-14 61 views
3

我想分享我的应用程序该网址在Facebook上时: http://www.example.com/?_escaped_fragment_=v%3Bid%3DNH1NlYov3bKJFacebook的替代#V通过网址“_escaped_fragment_”共享

此网址: http://www.example.com/#!v;id=NH1NlYov3bKJ

但是,它会自动替换是错误的,它不会从网页中检索正确的标题,描述和图片。我能做什么?谢谢

+1

见https://developers.google.com/webmasters/ajax-crawling/docs/specification – 2013-02-14 17:06:46

回答

8

为什么您的网址包含序列#!?你可以改变它吗?由于ajax内容无法抓取,因此该顺序是(Google)规范的一部分,目的是使该内容可以抓取,并且大部分互联网大鱼都在使用它。

它是如何工作的?可以说你有一个像www.example.com/folder#!id=4的网址。这意味着url的一些内容由ajax提供,并且取决于信息id = 4,称为hash。 Google抓取工具会尝试读取页面www.example.com/folder?_escaped_fragment_=id=4,而根据规范,抓取工具希望找到同一页面的无ajax版本。

我不喜欢它,但它的工作原理,这就是为什么Twitter,Facebook,Groveshark和许多其他大鱼正在使用该规范。所以当你在脸书(一个100%的ajax页面)中分享grooveshark歌曲时,facebook知道在哪里可以找到同一页面的非ajax版本。但是因为Facebook也试图改变你的网址。

6

停止使用#!或按照Google指南处理转义片段查询。


Google's "Full Specification" for Webmasters

包含哈希代码每个URL与感叹号开始被认为是一个#!网址。请注意,任何URL最多可以包含一个散列片段。每个漂亮(!#)URL具有对应的丑陋(_escaped_fragment_)URL,它是衍生自具有以下步骤:

  • 散列片段成为查询参数的一部分。
  • 通过在查询参数前加上散列碎片,_escaped_fragment_ =
  • 当散列碎片成为查询参数的一部分时,某些字符会被转义。这些字符在下面列出。
  • URL的所有其他部分(主机,端口,路径,现有查询参数等)保持不变。

在这种情况下,脸谱最初这样做相当到难看(或客户端的动态与抓取时)步骤。请记住,_escaped_fragment_表格应产生可重复的快照

0

哈克我知道,但我即将使用.htaccess和mod_rewrite来捕捉_escaped_fragement_网址。在我的情况下,这是因为我制作了纯粹的.html/.js单页web应用程序,并且我需要捕捉搜索引擎何时需要快照,但是您可以使用相同的技术将丑陋的_escaped_fragment_重写为正确的格式为您的网站。

-1

另外一个想法是通过快捷服务,推动正确的网址你分享之前,如http://goo.gl/

+0

这可能不起作用:快捷服务只是做一个重定向,Facebook也可能重写重定向的URL。 – Tiddo 2014-11-27 12:43:44