好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

.htaccess与php判断手机/电脑访问手机页面 - php高级

.htaccess与php判断手机/电脑访问手机页面

本文章给大家介绍两种方法来识别访问你网站是手机用户不是PC用户,然后我们根据用户类型跳到相对应的页面去,下面先使用htaccess然后学有php的写法.

首页页面为网站更目录m下,后台参数和pc页面参数一样的话就可以这样,否则可能需要修改一下.

手机访问电脑页面时跳转,代码如下:

< IfModule  mod_rewrite.c >   RewriteEngine On  RewriteBase /m  RewriteCond %{HTTP_USER_AGENT} [android|blackberry|googlebot-mobile|iemobile|ipad|iphone|ipod|opera mobile|palmos|webos] [NC]  RewriteRule ^(.*)$ /m/$1 [L, R = 302 ] [L, R = 302 ]  </ IfModule >  

电脑访问手机时跳转,代码如下:

< IfModule  mod_rewrite.c >   RewriteEngine On  RewriteCond %{HTTP_USER_AGENT} "!(android|blackberry|googlebot-mobile|iemobile|ipad|iphone|ipod|opera mobile|palmos|webos)" [NC]  RewriteRule ^(.*)$ /$1 [L, R = 302 ]  </ IfModule >  

最后得说一下,因为RewriteRule ^(.*)$ /m/$1 [L,R=302] [L,R=302]的加入,如果手机页面中要访问非手机页面中的资源时,得用正则排除指定文件,如:RewriteRule ^(.*?(?<!jpg)$) /m/$1 [L,R=302],就不会造成手机访问非手机页面中jpg图片时出现无法访问的问题了.

如果你不能使用.htaccess文件我们可直接在php中加入下面代码:

//判断是否属手机   function  is_mobile() {    $user_agent  =  $_SERVER [ 'HTTP_USER_AGENT' ];    $mobile_agents  = Array( "240x320" , "acer" , "acoon" , "acs-" , "abacho" , "ahong" , "airness" , "alcatel" , "amoi" , "android" , "anywhereyougo测试数据" , "applewebkit/525" , "applewebkit/532" , "asus" , "audio" , "au-mic" , "avantogo" , "becker" , "benq" , "bilbo" , "bird" , "blackberry" , "blazer" , "bleu" , "cdm-" , "compal" , "coolpad" , "danger" , "dbtel" , "dopod" , "elaine" , "eric" , "etouch" , "fly " , "fly_" , "fly-" , "go.web" , "goodaccess" , "gradiente" , "grundig" , "haier" , "hedy" , "hitachi" , "htc" , "huawei" , "hutchison" , "inno" , "ipad" , "ipaq" , "ipod" , "jbrowser" , "kddi" , "kgt" , "kwc" , "lenovo" , "lg " , "lg2" , "lg3" , "lg4" , "lg5" , "lg7" , "lg8" , "lg9" , "lg-" , "lge-" , "lge9" , "longcos" , "maemo" , "mercator" , "meridian" , "micromax" , "midp" , "mini" , "mitsu" , "mmm" , "mmp" , "mobi" , "mot-" , "moto" , "nec-" , "netfront" , "newgen" , "nexian" , "nf-browser" , "nintendo" , "nitro" , "nokia" , "nook" , "novarra" , "obigo" , "palm" , "panasonic" , "pantech" , "philips" , "phone" , "pg-" , "playstation" , "pocket" , "pt-" , "qc-" , "qtek" , "rover" , "sagem" , "sama" , "samu" , "sanyo" , "samsung" , "sch-" , "scooter" , "sec-" , "sendo" , "sgh-" , "sharp" , "siemens" , "sie-" , "softbank" , "sony" , "spice" , "sprint" , "spv" , "symbian" , "tablet" , "talkabout" , "tcl-" , "teleca" , "telit" , "tianyu" , "tim-" , "toshiba" , "tsm" , "up.browser" , "utec" , "utstar" , "verykool" , "virgin" , "vk-" , "voda" , "voxtel" , "vx" , "wap" , "wellco" , "wig browser" , "wii" , "windows ce" , "wireless" , "xda" , "xde" , "zte" );    $is_mobile  = false;    foreach  ( $mobile_agents   as   $device ) {     if  ( stristr ( $user_agent ,  $device )) {      $is_mobile  = true;      break ;    }   }    return   $is_mobile ;  } 

第二步:if 语句, 代码如下:

if ( is_mobile() ){   就跳到手机页面哦  }  else   {  中到PC页面  }  

查看更多关于.htaccess与php判断手机/电脑访问手机页面 - php高级的详细内容...

  阅读:47次