2

我创建了一个单页应用程序。所有深层链接都采用 mysite.com/#!/entry_title 的形式。这允许 Google(和 Facebook)检查该页面内容的备用 URL。

我已经设置了服务器端检查以确定 Google 或 Facebook 是否正在寻找此页面的 HTML 快照。如果是这样,它会发送一个不同的标头,其中包含必要的 Facebook og 元标记。

这就是问题所在。如果我将其中一个 URL (mysite.com/#!/entry_title) 粘贴到状态框中,则显示的 URL 是 HTML 快照 URL (mysite.com/?_escaped_fragment_/entry_title)。

HTML 快照页面上的 og:url 元标记设置为 mysite.com/#!/entry_title。

如何使共享器显示 URL 的 mysite.com/#!/entry_title 版本而不是 HTML 快照版本?

提前致谢!

  • 布雷特
4

1 回答 1

2

我已经弄清楚了,并认为我会为其他人发布答案。

诀窍是为 Google/Facebook 设置重定向以转到更漂亮的 URL。所以任何形式的 URL

mysite.com/?_escaped_fragment_/entry_title 

被重定向到更漂亮的东西

mysite.com/view/entry_title

当有人分享我的动态 URL 之一时,Facebook 请求页面的 _escaped_fragment_ 版本,并被重定向到我更漂亮的 URL (mysite.com/view/entry_title),这就是 Facebook 帖子中显示的内容。

为了确保人们总是共享我的动态 URL,我在 mysite.com/view/entry_title 页面上设置了一个 javascript 重定向,以重定向回 mysite.com/#!/entry_title 页面。

虽然这不会在 Facebook 分享中显示动态 URL,但它显示的 URL 比 _escaped_fragment_ 版本更漂亮,并迫使人们返回我希望人们分享的动态 URL。

于 2012-01-04T19:18:54.873 回答