我正在运行安全链接指导服务(expiringlinks.co)。如果我更改php中的标题以重定向我的访问者,那么当用户通过Facebook发送链接时,Facebook可以显示我正在重定向到的网站的预览。我希望避免这种情况。现在,我正在使用AJAX调用来获取URL和javascript以进行重定向,但这会给不使用javascript的用户带来问题。
以下是我想阻止Facebook的一些方法,但我似乎无法工作:
我已经尝试阻止facebook bot(facebookexternalhit / 1.0和facebookexternalhit / 1.1),但它不起作用,我认为他们不会将它们用于此功能。
我正在考虑阻止Facebook的IP地址,但我找不到所有这些地址,除非我得到所有这些地址,否则我认为它不会起作用。
我想过使用CAPTCHA甚至是按钮,但是我无法让自己对访问者这样做。更不用说我认为没有人会使用该网站。
我在facebook文档中搜索了“选择退出”的元标记,但没有找到一个,并且怀疑如果我有的话我会信任它。
任何创意或任何想法如何实施上述内容?非常感谢你!
答案 0 :(得分:2)
试试这个 - 它对我有用......
<?php
$ua = $_SERVER['HTTP_USER_AGENT'];
if (preg_match('/facebookexternalhit/si',$ua)) {
header('Location: no_fb_page.php');
die() ;
}
?>
答案 1 :(得分:0)
您可以尝试获取Web服务器的日志文件,并在那里搜索不同的使用者。 (可能包含facebook) 或者,否则获取日志并删除每个包含Internet Explorer / firefox / opera ... 那么你最后应该只有机器人使用者。 然后你就可以搜索facebook了。
答案 2 :(得分:0)
您需要做的就是正确设置robots.txt。
答案 3 :(得分:0)
您可以尝试使用元刷新而不是javascript重定向。它们适用于所有浏览器,因为页面仍会返回200响应,任何爬虫都应该停止在那里解析。