用php实现让页面只能被百度gogole蜘蛛访问的方法

  普通用户与搜索引擎蜘蛛爬行的区别在于发送的user agent,

  看网站日志文件能发现百度蜘蛛名字包含Baiduspider, 而google的则是Googlebot, 这样我们可以通过判断发送的user agent来决定要不要取消普通用户的访问,编写函数如下:

  

复制代码 代码如下:

  function isAllowAccess($directForbidden = FALSE) {

  $allowed = array('/baiduspider/i', '/googlebot/i');

  $user_agent = $_SERVER['HTTP_USER_AGENT'];

  $valid = FALSE;

  foreach ($allowed as $pattern) {

  if (preg_match($pattern, $user_agent)) {

  $valid = TRUE;

  break;

  }

  }

  if (!$valid && $directForbidden) {

  exit("404 not found");

  }

   

  return $valid;

  }

  在要禁止访问的页面头部引用这个函数来做判断就ok了,如下俩中调用方式:

  

复制代码 代码如下:

  if (!isAllowAccess()) {

  exit("404 not found");

  }

  //或者

  isAllowAccess(TRUE);