我有一些页面,而不是目录,我不关心蜘蛛访问。我想添加一个脚本来检查AGENT INFO,如果它与其中一个抓取工具的一部分匹配,我想将其轻轻地重定向到另一个页面。在页面级别上进行重定向的最佳方法是什么,而不是在.htaccess文件中?它仍然是旧的META刷新标签吗?
if (crawler) {
echo '<META HTTP-EQUIV="Refresh" CONTENT="1; URL=redirect.html">';
}
答案 0 :(得分:4)
您应该使用robot.txt:More information
在您的页面中显示仅显示给机器人的内容是一种很好的快速方式,可以被搜索引擎列入黑名单。
答案 1 :(得分:1)
最好的方法是修改robots.txt
用户代理:* 禁止:something.php 禁止:other.php
如果您想将它们重定向到某个地方,这个元标记将无效,抓取工具很少会解析这些网页。
只需制作
if(preg_match(user agent))
{
header('Location: somewhere_i_want_them.php');
die();
}
答案 2 :(得分:1)
您可以检查$_SERVER['HTTP_USER_AGENT']
(user agent)以检查使用的客户端用户的类型。像Googlebot这样的“好爬虫”会在HTTP用户代理字段中使用他们的名字,例如Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
。但是,一些爬虫使用普通Web浏览器的用户代理文本作为其用户代理文本(并忽略其他内容,如robots.txt
),并且无法将这些爬虫识别为爬虫。
您可以使用PHP的preg_replace函数或其他内容来识别用户代理。像$isCrawler = preg_match('/bot/i',$_SERVER['HTTP_USER_AGENT'])
之类的东西可以完成这项工作。
使用META
代码重定向抓取工具/漫游器并不是一个好主意。我建议你使用header函数。
无论如何,最好的方法是使用robots.txt。