我创建了一个单页应用。所有深层链接都以mysite.com/#!/entry_title的形式出现。这允许Google(和Facebook)检查该页面内容的备用URL。
我已设置服务器端检查以确定Google或Facebook是否正在查找此页面的HTML快照。如果是这样,它会发送包含必要的Facebook og元标记的不同标头。
这是问题所在。如果我将其中一个网址(mysite.com/#!/entry_title)粘贴到我的状态框中,则显示的网址是HTML快照网址(mysite.com /?_ escaped_fragment_ / entry_title)。
HTML快照页面上的og:url元标记设置为mysite.com /#!/ entry_title。
如何让Sharer显示URL的mysite.com/#!/entry_title版本而不是HTML快照版本?
提前致谢!
答案 0 :(得分:2)
我已经想到这一点,并认为我会为其他人发布答案。
诀窍是为Google / Facebook设置重定向以转到更漂亮的网址。所以任何网址都是
mysite.com/?_escaped_fragment_/entry_title
被重定向到像
这样更漂亮的东西mysite.com/view/entry_title
当有人共享我的一个动态网址时,Facebook会请求该页面的_escaped_fragment_版本,并被重定向到我更漂亮的网址(mysite.com/view/entry_title),这就是Facebook帖子中显示的内容。
为了确保人们始终共享我的动态网址,我在mysite.com/view/entry_title页面上设置了javascript重定向,以重定向回mysite.com/#!/entry_title页面。
虽然这不会显示Facebook共享中的动态网址,但它会显示比_escaped_fragment_版本更漂亮的网址,并强制用户返回我希望人们分享的动态网址。