Как перенаправить сайты для мобильных пользовательских агентов? - PullRequest
0 голосов
/ 20 мая 2019

У меня есть этот код на настольном веб-сайте 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 ]

1 голос
/ 20 мая 2019

Я нашел следующее решение для вашей проблемы, надеюсь, это поможет вам.

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

Вы можете добавить приведенную выше строку кода в файл functions.php вашей темы.Я найду указанную ссылку , чтобы помочь вам больше по этой теме

0 голосов
/ 20 мая 2019

Я знаю, что это не прямой ответ на ваш вопрос, но рассмотрите возможность использования существующих библиотек, таких как, например, Mobile-Detect .Это довольно просто, и вы будете поддерживать перенаправление для гораздо большего количества мобильных устройств.

$detect = new Mobile_Detect;
$isMobile = $detect->isMobile();
if ($isMobile) {
    // do the redirect here
}
0 голосов
/ 20 мая 2019

Для этого доступна библиотека PHP, которая предоставляет вам множество опций, таких как мобильный телефон, планшет, iOS, Android и т. Д .: http://mobiledetect.net/

Поскольку вы находитесь в PHP, вы можете перенаправить, установив заголовок вместо использования JavaScript, что также быстрее: Как сделать перенаправление в PHP?

0 голосов
/ 20 мая 2019

вы можете попробовать с приведенным ниже решением

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

Ссылочный URL: https://www.woorank.com/en/blog/how-to-redirect-mobile-users-on-your-website

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...