每天一点正能量,分享励志生活,记录一个网络营销人成长的点点滴滴!
记录:判断蜘蛛和普通用户访问,打开不同页面
首页 > 技术 作者:admin 2017年11月10日 浏览:697 字号: 评论:1

今天用到一个需要区分搜索引擎蜘蛛访问和普通用户访问,然后根据不同的访问类型打开不同的页面的功能,记录以备以后使用

第一种方法:
<?php
$flag = false;
$tmp = $_SERVER[‘HTTP_USER_AGENT’];
if(strpos($tmp, ‘Googlebot’) !== false){
$flag = true;
} else if(strpos($tmp, ‘Baiduspider’) >0){
$flag = true;
} else if(strpos($tmp, ‘Yahoo! Slurp’) !== false){
$flag = true;
} else if(strpos($tmp, ‘msnbot’) !== false){
$flag = true;
} else if(strpos($tmp, ‘Sosospider’) !== false){
$flag = true;
} else if(strpos($tmp, ‘YodaoBot’) !== false || strpos($tmp, ‘OutfoxBot’) !== false){
$flag = true;
} else if(strpos($tmp, ‘Sogou web spider’) !== false || strpos($tmp, ‘Sogou Orion spider’) !== false){
$flag = true;
} else if(strpos($tmp, ‘fast-webcrawler’) !== false){
$flag = true;
} else if(strpos($tmp, ‘Gaisbot’) !== false){
$flag = true;
} else if(strpos($tmp, ‘ia_archiver’) !== false){
$flag = true;
} else if(strpos($tmp, ‘altavista’) !== false){
$flag = true;
} else if(strpos($tmp, ‘lycos_spider’) !== false){
$flag = true;
} else if(strpos($tmp, ‘Inktomi slurp’) !== false){
$flag = true;
}
if($flag == false){
header(“Location: XXXXXXX”);
exit();
}
?>
第二种方法:非蜘蛛访问跳转到指定URL
<?php
$v = false;
$tmp = $_SERVER[‘HTTP_USER_AGENT’];
if(strpos($tmp, ‘Googlebot’) !== false){
$v = true;
} else if(strpos($tmp, ‘Baiduspider’) >0){
//echo ‘百度’;
$v = true;
} else if(strpos($tmp, ‘Yahoo! Slurp’) !== false){
//echo ‘雅虎’;
$v = true;
} else if(strpos($tmp, ‘msnbot’) !== false){
//echo ‘Msn’;
$v = true;
} else if(strpos($tmp, ‘Sosospider’) !== false){
//echo ‘搜搜’;
$v = true;
} else if(strpos($tmp, ‘YodaoBot’) !== false || strpos($tmp, ‘OutfoxBot’) !== false){
//echo ‘有道’;
$v = true;
} else if(strpos($tmp, ‘Sogou web spider’) !== false || strpos($tmp, ‘Sogou Orion spider’) !== false){
//echo ‘搜狗’;
$v = true;
} else if(strpos($tmp, ‘fast-webcrawler’) !== false){
//echo ‘Alltheweb’;
$v = true;
} else if(strpos($tmp, ‘Gaisbot’) !== false){
//echo ‘Gais’;
$v = true;
} else if(strpos($tmp, ‘ia_archiver’) !== false){
//echo ‘Alexa’;
$v = true;
} else if(strpos($tmp, ‘altavista’) !== false){
//echo ‘AltaVista’;
$v = true;
} else if(strpos($tmp, ‘lycos_spider’) !== false){
//echo ‘Lycos’;
$v = true;
} else if(strpos($tmp, ‘Inktomi slurp’) !== false){
//echo ‘Inktomi’;
$v = true;
}
if($v != true){
header(“Location: URL”);
}
?>
第三种方法:根据不同的类型跳到不同的页面

<?php
function checkrobot($useragent=”){
static $kw_spiders = array(‘bot’, ‘crawl’, ‘spider’ ,’slurp’, ‘sohu-search’, ‘lycos’, ‘robozilla’);
static $kw_browsers = array(‘msie’, ‘netscape’, ‘opera’, ‘konqueror’, ‘mozilla’);$useragent = strtolower(empty($useragent) ? $_SERVER[‘HTTP_USER_AGENT’] : $useragent);
if(strpos($useragent, ‘http://’) === false && dstrpos($useragent, $kw_browsers)) return false;
if(dstrpos($useragent, $kw_spiders)) return true;
return false;
}
function dstrpos($string, $arr, $returnvalue = false) {
if(empty($string)) return false;
foreach((array)$arr as $v) {
if(strpos($string, $v) !== false) {
$return = $returnvalue ? $v : true;
return $return;
}
}
return false;
}
if(checkrobot()){
header(“Location: URL1蜘蛛”);
exit();
}else{
header(“Location: URL2用户”);
exit();
}
?>

由于复制上面的代码容易出现编码问题而报错,可以点击这里下载:https://pan.baidu.com/s/1c1OhRTA

 您阅读这篇文章共花了: 
转载:中国爸爸都得上了一种病
百度新算法“惊雷算法”
标签:
记录:判断蜘蛛和普通用户访问,打开不同页面
本文作者:admin     文章标题: 记录:判断蜘蛛和普通用户访问,打开不同页面
本文地址:https://www.lizhi8.cc/s/spieruser.html
版权声明:若无注明,本文皆为“admin”原创,转载请保留文章出处。

一条回应:“记录:判断蜘蛛和普通用户访问,打开不同页面”

  1. 自OLI说道:

    不错 挺有用的

发表评论

电子邮件地址不会被公开。 必填项已用*标注