重定向蜘蛛

时间:2011-06-25 13:30:23

标签: php html redirect

我有一些页面,而不是目录,我不关心蜘蛛访问。我想添加一个脚本来检查AGENT INFO,如果它与其中一个抓取工具的一部分匹配,我想将其轻轻地重定向到另一个页面。在页面级别上进行重定向的最佳方法是什么,而不是在.htaccess文件中?它仍然是旧的META刷新标签吗?

if (crawler) {
   echo '<META HTTP-EQUIV="Refresh" CONTENT="1; URL=redirect.html">';
}

3 个答案:

答案 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