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

时间:2019-05-20 12:09:42

标签: 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\.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>";
}
}
?>

并且此代码在移动网站 m.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", $_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>";
}
}
?>

无法检测到此代码中的任何问题,但是站点正在无限地从一个重定向到另一个。在Wordpress网站上使用,如果Wordpress限制使用此php代码,请进行指导。

4 个答案:

答案 0 :(得分:0)

您可以尝试以下解决方案

 <?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>";
    }
 ?>

参考网址:https://www.woorank.com/en/blog/how-to-redirect-mobile-users-on-your-website

答案 1 :(得分:0)

有一个可用的PHP库,它为您提供了很多选择,例如移动设备,平板电脑,iOS,Android等:http://mobiledetect.net/

由于您使用的是PHP,因此可以通过设置标头而不是使用JavaScript来重定向,这也更快:How do I make a redirect in PHP?

答案 2 :(得分:0)

我已经找到以下解决方案来解决您的问题,希望对您有所帮助。

add_action('wp_head', 'redirect_mobile');
function redirect_mobile(){
   if ( wp_is_mobile() ) {
    wp_redirect( 'http://url' ); 
    exit; 
  }
}

您可以在主题functions.php文件中添加以上代码行。 我会找到给定的link to helps you more on this topic

答案 3 :(得分:0)

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

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