Với sự phát triển chóng mặt của Smart Phone, tất nhiên là các website sẽ tập trung phát triển mảng dành cho di động và nó cũng nằm trong tiêu chuẩn đánh giá thứ hạng seo.
Thông thường developer sẽ phát triển website dành cho di động theo hai hướng: thiết kết responsive web hoặc xây dựng giao diện mới trên di động và chuyển hướng khi người dùng truy cập vào trang giao diện dành cho PC.
Vậy, làm sao biết người dùng sử dụng thiết bị Smart Phone mà chuyển hướng?
Việc chuyển hướng website này khá dễ thực hiện với một vài cách sau
1. Dùng .htaccess
<IfModule mod_rewrite.c> RewriteEngine on RewriteBase / # Check if this is the noredirect query string RewriteCond %{QUERY_STRING} (^|&)m=0(&|$) # Set a cookie, and skip the next rule RewriteRule ^ - [CO=mredir:0:www.tenmiencuaban.com] # Check if this looks like a mobile device # (You could add another [OR] to the second one and add in what you # had to check, but I believe most mobile devices should send at # least one of these headers) RewriteCond %{HTTP:x-wap-profile} !^$ [OR] RewriteCond %{HTTP:Profile} !^$ [OR] RewriteCond %{HTTP_USER_AGENT} "sony|symbian|nokia|samsung|mobile" [NC,OR] RewriteCond %{HTTP_USER_AGENT} "windows ce|epoc|opera|mini|nitro" [NC,OR] RewriteCond %{HTTP_USER_AGENT} "j2me|midp-|cldc-|netfront|mot" [NC,OR] RewriteCond %{HTTP_USER_AGENT} "up\.browser|up\.link|audiovox" [NC,OR] RewriteCond %{HTTP_USER_AGENT} "mini|nitro|j2me|midp-|cldc"[NC,OR] RewriteCond %{HTTP_USER_AGENT} "netfront|mot|up\.browser|up\.link"[NC,OR] RewriteCond %{HTTP_USER_AGENT} "audiovox|blackberry|ericsson,"[NC,OR] RewriteCond %{HTTP_USER_AGENT} "panasonic|philips|sanyo|sharp|sie-"[NC,OR] RewriteCond %{HTTP_USER_AGENT} "portalmmm|blazer|avantgo|dange"[NC,OR] RewriteCond %{HTTP_USER_AGENT} "palm|series60|palmsource|pocketpc"[NC,OR] RewriteCond %{HTTP_USER_AGENT} "smartphone|rover|ipaq|au-mic,"[NC,OR] RewriteCond %{HTTP_USER_AGENT} "alcatel|ericy|vodafone\/|wap1\."[NC,OR] RewriteCond %{HTTP_USER_AGENT} "wap2\.|iPhone|android"[NC,OR] RewriteCond %{HTTP_USER_AGENT} "googlebot-mobile"[NC] RewriteCond %{HTTP_USER_AGENT} !macintosh [NC] # Check if we're not already on the mobile site RewriteCond %{HTTP_HOST} !^m\. # Can not read and write cookie in same request, must duplicate condition RewriteCond %{QUERY_STRING} !(^|&)m=0(&|$) # Check to make sure we haven't set the cookie before RewriteCond %{HTTP_COOKIE} !^.*mredir=0.*$ [NC] # Now redirect to the mobile site RewriteRule ^ http://m.tenmiencuaban.com [R,L] </ifModule>
2. Dùng PHP
$userBrowser = $_SERVER['HTTP_ACCEPT']; if(stristr($userBrowser, 'application/vnd.wap.xhtml+xml')) { $_REQUEST['wap2'] = 1; } elseif(stripos($_SERVER['HTTP_USER_AGENT'],"iPod")) { $_REQUEST['iphone'] = 1; } elseif(stripos($_SERVER['HTTP_USER_AGENT'],"iPhone")) { $_REQUEST['iphone'] = 1; } elseif(stripos($_SERVER['HTTP_USER_AGENT'],"Android")) { $_REQUEST['Android'] = 1; } elseif(stripos($_SERVER['HTTP_USER_AGENT'],"IEMobile")) { $_REQUEST['IEMobile'] = 1; } elseif(stristr($userBrowser, 'DoCoMo/' || 'portalmmm/')) { $_REQUEST['imode'] = 1; } elseif(stristr($userBrowser, 'text/vnd.wap.wml')) { $_REQUEST['wap'] = 1; } elseif(stristr($userBrowser, 'text/html')) { $_REQUEST['html'] = 1; } if(!defined('WAP')) define('WAP', isset($_REQUEST['wap']) || isset($_REQUEST['wap2']) || isset($_REQUEST['imode'])|| isset($_REQUEST['html'])|| isset($_REQUEST['Android'])|| isset($_REQUEST['iphone'])|| isset($_REQUEST['IEMobile'])); if (WAP) { define('WIRELESS_PROTOCOL', isset($_REQUEST['wap']) ? 'wap' : (isset($_REQUEST['wap2']) ? 'wap2' : (isset($_REQUEST['iphone']) ? 'iphone' : (isset($_REQUEST['imode']) ? 'imode' : (isset($_REQUEST['IEMobile']) ? 'IEMobile' :(isset($_REQUEST['html']) ? 'html' : (isset($_REQUEST['Android']) ? 'Android' : ''))))))); if (WIRELESS_PROTOCOL == 'wap') { $browser_t = "mobile"; } elseif (WIRELESS_PROTOCOL == 'wap2') { $browser_t = "mobile"; } elseif (WIRELESS_PROTOCOL == 'imode') { $browser_t = "mobile"; } elseif (WIRELESS_PROTOCOL == 'iphone') { $browser_t = "smartphone"; } elseif (WIRELESS_PROTOCOL == 'Android') { $browser_t = "smartphone"; } elseif (WIRELESS_PROTOCOL == 'IEMobile') { $browser_t = "smartphone"; } elseif (WIRELESS_PROTOCOL == 'html') { $mobile_browser = '0'; if(preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone)/i', strtolower($_SERVER['HTTP_USER_AGENT']))){ $mobile_browser++; } if((strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml')>0) or ((isset($_SERVER['HTTP_X_WAP_PROFILE']) or isset($_SERVER['HTTP_PROFILE'])))){ $mobile_browser++; } $mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'],0,4)); $mobile_agents = array( 'w3c ','acs-','alav','alca','amoi','audi','avan','benq','bird','blac', 'blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno', 'ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-', 'maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-', 'newt','noki','oper','palm','pana','pant','phil','play','port','prox', 'qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar', 'sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-', 'tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp', 'wapr','webc','winw','winw','xda','xda-'); if(in_array($mobile_ua,$mobile_agents)){ $mobile_browser++; } if (strpos(strtolower($_SERVER['ALL_HTTP']),'OperaMini')>0) { $mobile_browser++; } if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'iemobile')>0) { $mobile_browser++; } if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'windows')>0) { $mobile_browser=0; } if($mobile_browser>0){ // do something wap $browser_t = "mobile"; } // non-mobile else { $_SESSION['Browser_d'] = "web"; $browser_t = "web"; } } else { // do something else html $_SESSION['Browser_d'] = "web"; $browser_t = "web"; } } else { $mobile_browser = '0'; if(preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone)/i', strtolower($_SERVER['HTTP_USER_AGENT']))){ $mobile_browser++; } if((strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml')>0) or ((isset($_SERVER['HTTP_X_WAP_PROFILE']) or isset($_SERVER['HTTP_PROFILE'])))){ $mobile_browser++; } $mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'],0,4)); $mobile_agents = array( 'w3c ','acs-','alav','alca','amoi','audi','avan','benq','bird','blac', 'blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno', 'ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-', 'maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-', 'newt','noki','oper','palm','pana','pant','phil','play','port','prox', 'qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar', 'sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-', 'tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp', 'wapr','webc','winw','winw','xda','xda-'); if(in_array($mobile_ua,$mobile_agents)){ $mobile_browser++; } if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'iemobile')>0) { $mobile_browser++; } if (strpos(strtolower($_SERVER['ALL_HTTP']),'OperaMini')>0) { $mobile_browser++; } if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'windows')>0) { $mobile_browser=0; } if($mobile_browser>0){ // do something wap $browser_t = "mobile"; } // non-mobile else { $_SESSION['Browser_d'] = "web"; $browser_t = "web"; } }
Các bạn có thể tham khảo từ source code ví dụ sau: chuyển hướng website