最近看了網(wǎng)站的訪問日志,發(fā)現(xiàn)幾個網(wǎng)絡蜘蛛吃了大部分的流量,其中尤以幾個野蜘蛛為甚。一般的蜘蛛,你在robots.txt里把它禁止了,它也很快就不來了。但是有些野蜘蛛根本無視robots.txt的存在,照樣天天來。而且IP很豐富,例如這個EasouSpider,天天瘋爬,IP從183.60.212*到183.60.215.*,每天不重樣。按IP段封又怕誤殺。更有些沒皮沒臉的,連HTTP_USER_AGENT都是空的,也天天按時報到。
對于這兩種情況通過研究發(fā)現(xiàn)可以通過判斷HTTP_USER_AGENT字段,把這些訪問Ban掉。
以Wordpress為例,可以在根目錄下的wp-blog-header.php里最前面加入以下代碼:
<?php
//Ban 掉某些野蜘蛛 2013.01.11
$flag = false;
$tmp = $_SERVER['HTTP_USER_AGENT'];
if($tmp == ''){
$flag = true;
} else if(strpos($tmp, 'EasouSpider') >0){
$flag = true;
}
if($flag !== false){
header('HTTP/1.1 404 Not Found');
header("status: 404 Not Found");
// 當然你也可以把臟水潑回去: header("Location: http://www.easou.com");
echo '本站屏蔽某些野蜘蛛Spider/Bot,看到本頁面表示被屏蔽,如果您是普通的訪問者,請聯(lián)系 <a href=mailto:xx@xxx.me?subject=小米樂園誤屏蔽正常訪問者>xx@xxx.me</a> 反饋情況,謝謝!<br>——小米樂園 s.mile77.com';
exit();
}
//Ban 掉某些野蜘蛛 2013.01.11
?>
這是把HTTP_USER_AGENT字段為空或包含“EasouSpider”的訪問Ban掉,如果想Ban掉其它的訪問者,可以按照格式添加判斷條件。
對于這兩種情況通過研究發(fā)現(xiàn)可以通過判斷HTTP_USER_AGENT字段,把這些訪問Ban掉。
以Wordpress為例,可以在根目錄下的wp-blog-header.php里最前面加入以下代碼:
<?php
//Ban 掉某些野蜘蛛 2013.01.11
$flag = false;
$tmp = $_SERVER['HTTP_USER_AGENT'];
if($tmp == ''){
$flag = true;
} else if(strpos($tmp, 'EasouSpider') >0){
$flag = true;
}
if($flag !== false){
header('HTTP/1.1 404 Not Found');
header("status: 404 Not Found");
// 當然你也可以把臟水潑回去: header("Location: http://www.easou.com");
echo '本站屏蔽某些野蜘蛛Spider/Bot,看到本頁面表示被屏蔽,如果您是普通的訪問者,請聯(lián)系 <a href=mailto:xx@xxx.me?subject=小米樂園誤屏蔽正常訪問者>xx@xxx.me</a> 反饋情況,謝謝!<br>——小米樂園 s.mile77.com';
exit();
}
//Ban 掉某些野蜘蛛 2013.01.11
?>
這是把HTTP_USER_AGENT字段為空或包含“EasouSpider”的訪問Ban掉,如果想Ban掉其它的訪問者,可以按照格式添加判斷條件。