Yii 如何实现当 PC 端访问手机版的时候只会转跳到 PC 版 [ 未指定版本 ]
如题,现在的网站分了 2 个模块,一个是 pc 一个是手机的,能像 tp 那样通过行为来判断设备来转跳到对应的模块吗
共 3 个回答
-
把这个写在自定义的行为里边就可以了 $pcHostInfo=Yii::$app->request->hostInfo; $pcAbsoluteUrl=Yii::$app->request->absoluteUrl; $mobileHostInfo='http://m.mobile.com'; $mobileAbsoluteUrl=str_replace($pcHostInfo,$mobileHostInfo,$pcAbsoluteUrl); if(isset($_SERVER['HTTP_X_WAP_PROFILE'])) { return Yii::$app->response->redirect($mobileAbsoluteUrl)->send(); } else if(isset($_SERVER['HTTP_VIA'])) { if(stristr($_SERVER['HTTP_VIA'],"wap")) { return Yii::$app->response->redirect($mobileAbsoluteUrl)->send(); } else { return true; } } else if(isset($_SERVER['HTTP_USER_AGENT'])) { $clientkeyword=[ 'nokia','sony','ericsson','mot','samsung', 'htc','sgh','lg','sharp','sie-','philips', 'panasonic','alcatel','lenovo','iphone', 'ipod','blackberry','meizu','android', 'netfront','symbian','ucweb','windowsce', 'palm','operamini','operamobi','openwave', 'nexusone','cldc','midp','wap','mobile', ]; $client=implode('|', $clientkeyword); if(preg_match("/(".$client.")/i",strtolower($_SERVER['HTTP_USER_AGENT']))) { return Yii::$app->response->redirect($mobileAbsoluteUrl)->send(); } else { return true; } } else if(isset($_SERVER['HTTP_ACCEPT'])) { $vndWapWml=strpos($_SERVER['HTTP_ACCEPT'],'vnd.wap.wml'); $textml=strpos($_SERVER['HTTP_ACCEPT'],'textml'); if(($vndWapWml!==false)&&($textml===false||($vndWapWml<$textml))) { return Yii::$app->response->redirect($mobileAbsoluteUrl)->send(); } else { return true; } } else { return true; }
☆一蚊一打龟 广东佛山
注册时间:2019-07-08
最后登录:2019-10-23
在线时长:7小时44分
最后登录:2019-10-23
在线时长:7小时44分
- 粉丝0
- 金钱490
- 威望0
- 积分560