2012-07-30 67 views
1

我必须有两个站点,一个是我的主站点,另一个是移动站点。这是我用于在移动设备中使用移动站点时重定向站点的脚本。现在我想忽略iPad的移动网站重定向。我已经使用这个脚本,但它不忽略iPad,它仍然在移动网站上重定向Ipad,我不想要这个。 Plz的帮助。停止在iPad上重定向移动网站

<?php 
    function check_user_agent ($type = NULL) { 
      $user_agent = strtolower ($_SERVER['HTTP_USER_AGENT']); 
      if ($type == 'bot') { 
        // matches popular bots 
        if (preg_match ("/googlebot|adsbot|yahooseeker|yahoobot|msnbot|watchmouse|pingdom\.com|feedfetcher-google/", $user_agent)) { 
          return true; 
          // watchmouse|pingdom\.com are "uptime services" 
        } 
      } else if ($type == 'browser') { 
        // matches core browser types 
        if (preg_match ("/mozilla\/|opera\//", $user_agent)) { 
          return true; 
        } 
      } else if ($type == 'mobile') { 
        // matches popular mobile devices that have small screens and/or touch inputs 
        // mobile devices have regional trends; some of these will have varying popularity in Europe, Asia, and America 
        // detailed demographics are unknown, and South America, the Pacific Islands, and Africa trends might not be represented, here 


        if(preg_match ("/iPad/", $user_agent)) { 
          return false; 
        } else if (preg_match ("/phone|iphone|itouch|ipod|symbian|android|htc_|htc-|palmos|blackberry|opera mini|iemobile|windows ce|nokia|fennec|hiptop|kindle|mot |mot-|webos\/|samsung|sonyericsson|^sie-|nintendo/", $user_agent)) { 
          // these are the most common 
          return true; 
        } else if (preg_match ("/mobile|pda;|avantgo|eudoraweb|minimo|netfront|brew|teleca|lg;|lge |wap;| wap /", $user_agent)) { 
          // these are less common, and might not be worth checking 
          return true; 
        } 
      } 
      return false; 
    } 
    $ismobile = check_user_agent('mobile'); 
    if($ismobile) { 
    header('Location:mobiles_site_url'); 
    } 
    ?> 
+1

在某些时候[CSS3媒体查询(http://webdesignerwall.com/tutorials/css3-media-queries)将有广泛的支持,而这种代码将不再有必要 – 2012-07-30 04:54:46

回答

2

您的用户代理字符串,第一行用strtolower()来检查“的iPad”中有一个大写字母。

尝试:

if(preg_match ("/ipad/", $user_agent)) { // all lower case 
    .... 
} 
+0

感谢它看起来像它会工作....你有ipad为我测试,因为我没有... :) – 2012-07-30 05:22:10

+0

我这样做。代理用户字符串是:'mozilla/5.0(ipad;像mac os x的cpu os 5_1_1)applewebkit/534.46(khtml,像gecko)version/5.1 mobile/9b206 safari/7534.48.3'之后调用strtolower() 。所以,小写'ipad'在字符串中,所以它应该可以正常工作。 – Xesued 2012-07-30 05:28:10

+0

你可以理解这一点。但是您可以请打开http://mypartyaid.com/ url,它不应该在http://mypartyaid.com/m上重定向。请让我知道这个...谢谢:) – 2012-07-30 05:32:17