Joomla首页用PHP代码判断普通用户和搜索蜘蛛

偶看有个Joomla需要判断用户浏览器语言来执行跳转,而判断浏览器语言的前提是需要判断浏览网站的是普通用户,还是搜索引擎的蜘蛛。

joomla-spider

偶看在刚开始使用的是PHP的$_SERVER[‘HTTP_REFERER’]函数,经过两天时间查看网站的百度快照发现,网站首页在百度的快照出现错误,跳转到另外一个网站上了。偶看赶紧修改判断函数,经过分析需要使用$_SERVER[‘HTTP_USER_AGENT’。

在Joomla模板下的index.php页面顶部添加

$app = JFactory::getApplication();
$menu = $app->getMenu();
if ($menu->getActive() == $menu->getDefault()) { 
 $ua = strtolower($_SERVER['HTTP_USER_AGENT']);
    $botchar = "/(bot|crawl|spider|slurp|yahoo|sohu-search|lycos|robozilla)/i";
    if(!preg_match($botchar, $ua)  && $_SERVER['HTTP_REFERER') {//判断为非搜索引擎,而且是直接访问的用户
  $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 4); //只取前4位,这样只判断最优先的语言。如果取前5位,可能出现en,zh的情况,影响判断。 
  if (preg_match("/zh/i", $lang)){
   header('location:'.'http://www.oukan.net');
  }
 }
}

这样即可在Joomla网站的首页,通过PHP代码判断访问网站的是普通用户,还是搜索蜘蛛。如果是普通用户,而且浏览器的默认语言是中文,及跳转到中文网站;如果是搜索引擎,不进行任何判断。

《Joomla首页用PHP代码判断普通用户和搜索蜘蛛》有2个想法

发表评论