2011-11-19 130 views
9

我有一个安全的连接方向服务,我正在运行(expiringlinks.co)。如果我在PHP中更改标题以重定向我的访问者,那么Facebook可以显示我在用户通过Facebook发送链接到另一个链接时重定向到的网站的预览。我希望避免这种情况。现在,我正在使用AJAX调用来获取URL和JavaScript重定向,但是这会对不使用JavaScript的用户造成问题。从我的网站阻止Facebook

这里有一些方法,我想阻止Facebook的,但我似乎无法得到工作:

  1. 我试图阻止Facebook的机器人(facebookexternalhit/1.0和facebookexternalhit/1.1),但它不工作,我不认为他们正在使用它们的功能。

  2. 我想阻止Facebook的IP地址,但我找不到所有这些,我不认为它会工作,除非我得到所有人。

  3. 我想过使用验证码甚至按钮,但我不能让自己这样做给我的访问者。更何况我不认为有人会使用该网站。

  4. 我已经搜索了Facebook文档中的meta标签,它会“选择退出”,但还没有找到,并且怀疑我会信任它。

任何创意或任何想法如何实现上面的?提前感谢你!

+1

你是如何知道'(facebookexternalhit/1.0和facebookexternalhit/1.1)'?是通过他们的文档还是倾销了访问者用户代理?就我个人而言,我会尝试设置所有用户的用户代理日志,然后创建一个链接,并让Facebook创建此链接的​​预览。如果你发现一个可以用于Facebook的应用程序,请阻止它,看看会发生什么。 Facebook还使用多个URL作为外部内容的代理,比如'http:// external.ak.fbcdn.net/safe_image.php' – 2011-11-19 17:38:09

+0

我从他们的文档和其他来源在线阅读了有关漫游器的信息。我一直在使用Piwik进行分析,并且在分享链接时无法检测到Facebook。我不确定我是否明白您的网址代表的意思。 –

+0

他们使用来自“facebook.com”域以外的域的脚本来加载您的内容。他们还缓存内容,如果再次请求相同的内容(如图片),Facebook将加载他们的缓存版本,而不是您的版本。如果您尝试不止一次链接到同一个网址,这也可能在这里。 – 2011-11-19 19:08:32

回答

2

试试这个 - 我的作品......

<?php 
$ua = $_SERVER['HTTP_USER_AGENT']; 

if (preg_match('/facebookexternalhit/si',$ua)) { 
header('Location: no_fb_page.php'); 
die() ; 
} 

?> 
+0

美丽!非常感谢! –

+0

不客气:) –

0

您可以尝试获取Web服务器的日志文件,并在那里搜索非常规的useragents。 (也许包含脸谱) 或者,否则获取日志并删除每个包含Internet Explorer/firefox/opera ... 然后,你应该只有机器人使用最终。 然后你可以搜索Facebook的一个。

0

您所需要做的就是适当设置robots.txt。

http://www.robotstxt.org/robotstxt.html

+0

...提供的Facebook实际上遵守这个规则。是这样吗? – glglgl

+0

@glglgl,我还没有尝试过,但如果网络上这样的主要玩家没有遵循像robots.txt这样基本的东西,如果出于法律原因涉及索引和存储内容其他网站。如果您已经尝试过,并且知道其他情况,请发帖。 – Brad

+1

我也不知道,但虽然'robots.txt'非常基本,但它并不是一个标准,我认为他们不会因为使用它而被指责为nit。因为他们根本不关心隐私,所以我不确定他们是否会这样做,如果他们只是通过“robots.txt”告诉他们的话。如果我错了,我们有幸... – glglgl

0

你可以尝试使用元刷新,而不是一个JavaScript重定向。它们适用于所有浏览器,并且由于该页面仍然会返回200响应,因此任何爬虫都应该停止解析。

+0

我喜欢你的方法,但不禁想,如果Facebook链接爬虫检测到重定向HTTP标头,为什么不检测META重定向? –

+0

因为HTTP头是作为响应的一部分发送的,所以机器人必须理解它的功能,元刷新是客户端,并且需要bot解析响应并识别刷新。 显然它可以做的事情,但如果我正在编写一个机器人来解决URL,我可能会告诉它一旦收到200响应就停止解析。值得一去。 – alexarno

+0

现在,Facebook也越来越聪明地识别元刷新标签。 – Goyllo