ajax – 如何处理Facebook共享/像hashbang urls?

前端之家收集整理的这篇文章主要介绍了ajax – 如何处理Facebook共享/像hashbang urls?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在建立一个网站,从主页我将在网站上打开一个其他的URI到一个lightBox(AJAX),我想使用 HTML5推状态和哈希爆炸作为后备来管理状态的变化.

现在我想要的URL可以抓取和Facebook可共享/喜欢..

如果用户浏览器支持HTML5推送状态,没问题,他可以共享URL(例如:http:// myserver / example),而Facebook会在静态内容中找到适当的OG元数据.

但是如果用户使用HTML4浏览器,他将会有一个像http:// myserver /#!/ example的网址.我希望他能够通过Facebook分享它…

现在看起来像Facebook支持_escaped_fragment_替换方法,所以我尽管我只是重定向请求从http:// myserver /?_escaped_fragment _ = / example
到http:// myserver / example
每个人都应该开心…

所以我添加了一个重写条件到我的htaccess:

RewriteCond %{QUERY_STRING} ^_escaped_fragment_=([^&]*)
RewriteRule .* http://%{HTTP_HOST}/%1? [R=301,L,NE]

我的问题是,我不能使它与Facebook的工作,与Facebook不同,似乎百分之百逃脱所有的时间部分的URL后的hashbang,导致网址像
http:// myserver //到404的例子:-(

有人知道如何欺骗Facebook不能逃避这部分网址?
我可以在apache mod_rewrite方面做些什么吗?

我也可以使用任何其他有效的ajax crawlable / likeable URL策略;)

我认为 http://facebook.stackoverflow.com/questions/8896773/opengraph-on-ajax-based-website的答案为如何实现这一点提供了一些非常好的建议.

以下是内容

不能打开图形标记必须存在于使用纯HTTP GET GET的HTML页面上.

这是因为当用户与OG对象(例如执行动作等)进行交互时,Facebook将在OG URL上执行HTTP GET,并期望看到标记中返回的OG标签.

解决方案是为每个对象创建规范的URL.这些URL包含基本的HTML标记,包括OG标签.

对这些URL的请求,如果您看到包含’facebookexternalhit’的传入的用户名字符串,那么您将呈现HTML.如果不这样做,您会将302重定向到您的ajax网址.在ajax网址上,您喜欢的按钮和您发布的任何OG操作都应指向规范的URL对象

例:

作为用户,我在http://yoursite.com/#!/artists/monet.我点击一个类似的按钮,或发布一个动作,但是类似按钮的href参数,或者当您发布动作时对象的URL应该是该对象的web可以标记的网址 – 在这种情况下,也许是http://yoursite.com/artists/monet

当使用浏览器的用户点击http://yoursite.com/artists/monet时,您应该将其重定向http://yoursite.com/#!/artists/monet,但是如果传入的用户名称是Facebook的刮刀,则只需返回代表艺术家Monet的标记.

对于现实世界的例子,请参见Deezer,Rdio和Mog,他们都使用这种设计模式.

猜你在找的Ajax相关文章