php爬虫检测

php爬虫检测,php,web-crawler,Php,Web Crawler,我正在尝试编写一个sitemap.php,它根据用户的不同而不同 我想将爬虫重定向到我的sitemap.xml,因为这将是最新的页面,并且将包含他们需要的所有信息,但是我希望我的普通读者在php页面上显示一个html站点地图 这一切都将从php标题中进行控制,我在web上发现,从外观上看应该可以工作,但事实并非如此。有人能帮我破解这个吗 function getIsCrawler($userAgent) { $crawlers = 'firefox|Google|msnbot|Rambl

我正在尝试编写一个sitemap.php,它根据用户的不同而不同

我想将爬虫重定向到我的sitemap.xml,因为这将是最新的页面,并且将包含他们需要的所有信息,但是我希望我的普通读者在php页面上显示一个html站点地图

这一切都将从php标题中进行控制,我在web上发现,从外观上看应该可以工作,但事实并非如此。有人能帮我破解这个吗

function getIsCrawler($userAgent) {
    $crawlers = 'firefox|Google|msnbot|Rambler|Yahoo|AbachoBOT|accoona|' .
    'AcioRobot|ASPSeek|CocoCrawler|Dumbot|FAST-WebCrawler|' .
    'GeonaBot|Gigabot|Lycos|MSRBOT|Scooter|AltaVista|IDBot|eStyle|Scrubby';
    $isCrawler = (preg_match("/$crawlers/i", $userAgent) > 0);
    return $isCrawler;
}

$iscrawler = getIsCrawler($_SERVER['HTTP_USER_AGENT']);

if ($isCrawler) {
    header('Location: http://www.website.com/sitemap.xml');
    exit;
} else {
    echo "not crawler!";
}
它看起来很简单,但正如你所看到的,我已经将firefox添加到代理列表中,并且确信我没有被重定向


谢谢您的帮助:)

您的代码有错误:

$crawler = getIsCrawler($_SERVER['HTTP_USER_AGENT']);
应该是

$isCrawler = getIsCrawler($_SERVER['HTTP_USER_AGENT']);
如果您在开发时注意到这些错误,您将更容易发现这些错误

另外,您可能希望在
标题之后退出


警告:伪装可能会给搜索提供商带来麻烦。解释原因。