类似Facebook的按钮将查询字符串添加到url
我正在实现facebook like按钮,并为其指定了like的url, 当我点击LIKE按钮时,我在facebook上看到了正确的页面 该链接是代码中指定的,并附加了一些奇怪的facebook查询字符串 对于exmpl: 我喜欢的那一页是 当我在facebook上点击喜欢的链接时,url是: ?fb#u action#u id=######&fb#u action#u types=og.likes&fb#u source=timeline#og&action#object_map={“#########action#类型(map={“{”###########og类似Facebook的按钮将查询字符串添加到url,facebook,facebook-like,Facebook,Facebook Like,我正在实现facebook like按钮,并为其指定了like的url, 当我点击LIKE按钮时,我在facebook上看到了正确的页面 该链接是代码中指定的,并附加了一些奇怪的facebook查询字符串 对于exmpl: 我喜欢的那一页是 当我在facebook上点击喜欢的链接时,url是: ?fb#u action#u id=######&fb#u action#u types=og.likes&fb#u source=timeline#og&action#object_map={“###
页面加载不正确,这是facebook的错误吗?facebook在URL中添加了各种参数,以便您可以跟踪访问的来源等。可能是您的页面不使用这些参数,而不是facebook。理想情况下,如果不需要这些参数,页面应该忽略它们。使用xfbml或html5版本的社交插件,并将其包含在元标记中
<meta property="og:url" content="...." />
我通过在fb:like按钮和og:URL中定义URL解决了这个问题
<fb:like href="http://www.yourwebsite.com/yourfullurl.html" send="true" layout="button_count" width="300" show_faces="false"></fb:like>
现在,不管从FB返回的参数是什么,它似乎都尊重计数。我们可以在.htaccess文件的帮助下删除/删除附加的查询字符串。 将下面提到的代码放在.htaccess文件中:
RewriteCond %{QUERY_STRING} fb_action_ids=.*$
RewriteRule .* %{REQUEST_URI}? [R=301,L]
RewriteCond %{QUERY_STRING} fb_comment_id=.*$
RewriteRule .* %{REQUEST_URI}? [R=301,L]
这会起作用:)不是,这些参数是facebook使用的。。。对于从FacBook重定向的l.php文件,Facebook仍然将这些URL添加到最终URL。所有OpenGraph操作在URL中都有此信息,但它是用于跟踪目的的。修复您的站点/页面以忽略这些。不可能“忽略”这些,因为此查询会弄乱所有类似url的/共享服务。如果您在xyz.com上有1000个喜欢,那么在xyz.com/?test123上有0个(!)喜欢,这是正确的。从技术上讲,
xyz.com
不同于xyz.com/?test123
。您不应该在浏览器中为Like按钮使用URL,您应该使用OpenGraph标记为页面定义URL。如何定义?我使用的是iframe版本的代码,url有一个参数,所以我使用它。还有另一种方法吗?这解决了一个问题,即无论查询字符串如何,都要为同一URL计算所有喜欢的内容,但我正在处理一个我无法控制的客户端站点,当添加查询字符串时,该站点将失败。这意味着人们不能点击用户FB墙上的链接。如果有必要可以删除查询字符串,那就太好了。xfbml+metatag og:url解决这个问题。FB wall中的帖子仍然有查询字符串,但当您单击时,将重定向到metatag中指定的url。如果你不能控制页面的内容,我认为你无法解决这个问题。