加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 03:06:42 所属栏目:百科 来源:网络整理
导读:我正在建立一个网站,从主页我将在网站上打开一个其他的URI到一个lightbox(AJAX),我想使用 HTML5推状态和哈希爆炸作为后备来管理状态的变化. 现在我想要的URL可以抓取和Facebook可共享/喜欢.. 如果用户浏览器支持HTML5推送状态,没问题,他可以共享URL(例如:ht
我正在建立一个网站,从主页我将在网站上打开一个其他的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,他们都使用这种设计模式.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读