WebjxCom提示:Google网站管理员工具的验证方式有两种
,一个是通过html文件
,或一种是通过meta标签
。通常情况下,这两个方式直接就可以通过验证了
。但是也有不同的情况,就是今天我遇到的情况!  
  Google网站管理员工具的验证方式有两种,一个是通过html文件,或一种是通过meta标签。通常情况下,这两个方式直接就可以通过验证了。但是也有不同的情况,就是今天我遇到的情况!  
  我按Google的说明,上传了google的html文件到网站的跟目录,但就是无法通过验证,报错是:  
  我们检测到您的404(找不到文件)错误页在标头中返回了200(成功)状态。  
  从说明上来看,他应该是也查我网站的404页面,而我的404页面是返回了200,而不是404。于是我随便打了一下一个错误的页面,发现,返回确实是200。那么我是不是把这个404页面加一个header404就可以了呢?是的:  
  只在要404页面的头部加上:  
  header("HTTP/1.0404NotFound");  
  就可以了!  
  这样,验证就通过了!但是,我这个404页面其实不是单纯的404页面,我还想让Google收录呢,而如果返回404,Google就不收录了。不能为了验证这个,我就不作200了,那么怎么呢?  
  我想了一下,Google如果过来访问我的404,他的useragent一定不一样,于是,我在
服务器端把所有访问的useragent都记录一下,发现了Google在作这个验证时,共访问我404页面3次,而且三次的usetagent都是不一样的,分别是以下:  
  Google-Sitemaps/1.0  
  Google-Site-Verification/1.0  
  Mozilla/3.0(compatible;IndyLibrary)  
  正常的Google爬虫是不是用这三个useragent的,从字面上来看,一个是google验证的,一个是googlesitemap的,另一个应该是一个开源的什么东西!  
  所以,在404的开头如果判断一下useragent,如果是三个,就返回404,否则全是200就行了:  
  <?php  
  $googleArray=array(  
  'Google-Sitemaps/1.0',  
  'Google-Site-Verification/1.0',  
  'Mozilla/3.0(compatible;IndyLibrary)'  
  );  
  if(in_array($_SERVER['HTTP_USER_AGENT'],$googleArray)){  
  header("HTTP/1.0404NotFound");  
  }else{  
  header("HTTP/1.0200OK");  
  }  
  ?>  
  OK,这样,验证就通过了!  
  但这样,说实在的不太好,404就应该是返回404,但有时有别的用处,也是没有办法的事!只能这样了!