在根目录下, index.php 文件中 24行左右 有如下代码
$ua = strtolower($_SERVER['HTTP_USER_AGENT']);
$uachar = "/(nokia|sony|ericsson|mot|samsung|sgh|lg|philips|panasonic|alcatel|lenovo|cldc|midp|mobile)/i";
if(($ua == '' || preg_match($uachar, $ua))&& !strpos(strtolower($_SERVER['REQUEST_URI']),'wap'))
{
$Loaction = 'mobile/';
if (!empty($Loaction))
{
ecs_header("Location: $Loaction\n");
exit;
}
}
$ua返回的是用户使用的浏览器相关信息
preg_match 正则表达式比对 如果 $ua中含有 $uachar中的字段则表式用户用的是手机浏览器
strpos(strtolower($_SERVER['REQUEST_URI']),'wap') 这个判断可以先不管.
这个时候 解决方案已经出来了
解决方案 1 :
最简单的方法 : 代码 $Loaction = 'mobile/'; 换成 $Loaction = '';
就是说去掉改路径的动作 来达到不让他地址掉转,这样就可以解决IPAD访问网站跳入到手机版本浏览
弊端 :其它手机访问一样是web版本的,这样会让用户产生大的流量
解决方案 2 :
if(($ua == '' || preg_match($uachar, $ua))&& !strpos(strtolower($_SERVER['REQUEST_URI']),'wap'))
改为:
if(($ua == '' || preg_match($uachar, $ua))&& !strpos(strtolower($_SERVER['REQUEST_URI']),'wap') && !preg_match('/(ipad)/i', $ua));
这个的意思是说,IPAD返回浏览器信息中,也就是$ua中含有“IPAD........某某.....mobile......” 他即含有 IPAD 又含有mobile,不是IPAD的是不会包含IPAD的,所有判断是 如果返回信息$ua中含有mobile 并且不含有ipad的去进入判断跳转到手机版本网站中。否则 正常浏览