Javascript 如何为移动用户代理重定向网站?

Javascript 如何为移动用户代理重定向网站?,javascript,php,wordpress,Javascript,Php,Wordpress,我在桌面网站www.domain.com上有此代码: <?php $userAgent = isset($_SERVER['HTTP_USER_AGENT']) ? strtolower($_SERVER['HTTP_USER_AGENT']) : ''; if(!preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\

我在桌面网站www.domain.com上有此代码:

<?php
$userAgent = isset($_SERVER['HTTP_USER_AGENT']) ? strtolower($_SERVER['HTTP_USER_AGENT']) : '';
if(!preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $userAgent)) 
{
if(strpos($_SERVER["HTTP_HOST"], "m.domain.com") !== false){        
    echo "<script>window.location='";
    echo str_replace("//m." , "//www.", "https://".$_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"]);
    echo "';</script>";
}
}
?>
<?php
$userAgent = isset($_SERVER['HTTP_USER_AGENT']) ? strtolower($_SERVER['HTTP_USER_AGENT']) : '';
if(preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"])) 
{
if(strpos($_SERVER["HTTP_HOST"], "www.domain.com") !== false){      
    echo "<script>window.location='";
    echo str_replace("//www." , "//m.", "https://".$_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"]);
    echo "';</script>";
}
}
?>

您可以尝试以下解决方案

 <?php 
    $iphone  = strpos($_SERVER['HTTP_USER_AGENT'],'iPhone');
    $android = strpos($_SERVER['HTTP_USER_AGENT'],'Android');
    $berry   = strpos($_SERVER['HTTP_USER_AGENT'],'BlackBerry');
    $ipod    = strpos($_SERVER['HTTP_USER_AGENT'],'iPod');

    if ($iphone || $android || $palmpre || $ipod || $berry == true)
    {
       echo "<script>// <![CDATA[
                window.location='http://m.site.com'
            // ]]></scrip>";
    }
 ?>

有一个PHP库可用于此,它为您提供了许多选项,如移动设备、平板电脑、iOS、Android等:


由于您使用的是PHP,因此可以通过设置标题来重定向,而不是使用JavaScript,这也更快:

我找到了以下解决方案来解决您的问题,我希望这将对您有所帮助

add_action('wp_head', 'redirect_mobile');
function redirect_mobile(){
   if ( wp_is_mobile() ) {
    wp_redirect( 'http://url' ); 
    exit; 
  }
}
您可以在themes functions.php文件中添加上述代码行。
我会发现给定的

我知道不是你的问题的直接答案,但是考虑一下使用现有的库,例如。非常简单,您将支持更多移动设备的重定向

$detect = new Mobile_Detect;
$isMobile = $detect->isMobile();
if ($isMobile) {
    // do the redirect here
}

您发布的代码已损坏,其正确形式如您的参考所述:这是导致相同问题的类似代码,仅处理较少的UseAgent更改请立即检查。