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 所以我添加了一个重写条件到我的htaccess: RewriteCond %{QUERY_STRING} ^_escaped_fragment_=([^&]*) RewriteRule .* http://%{HTTP_HOST}/%1? [R=301,L,NE] 我的问题是,我不能使它与Facebook的工作,与Facebook不同,似乎百分之百逃脱所有的时间部分的URL后的hashbang,导致网址像 有人知道如何欺骗Facebook不能逃避这部分网址? 我也可以使用任何其他有效的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,他们都使用这种设计模式. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |