Как на телефоне сделать мобильную версию яндекс на

Как на телефоне сделать мобильную версию яндекс на
Как на телефоне сделать мобильную версию яндекс на
Как на телефоне сделать мобильную версию яндекс на
Как на телефоне сделать мобильную версию яндекс на
Как на телефоне сделать мобильную версию яндекс на

Взято с http://умныйдурак.рф/redirekt-na-mobilnuyu-versiyu-sajta-ispolzuya-yandeks-detektor/

Приветствую!

Когда мы создавали наш корпоративный сайт, нам было необходимо сделать редирект на мобильную версию нашего сайта, т.к. основной сайт был резиновый и вся информация наезжала друг на друга и получалась полная ерунда.

 

Причем нужно было что бы переходили только мобильные телефоны, а планшетники и стационарные компьютеры оставались на основной версии. Хотел показать всю красоту сайта так сказать. Я пытался поначалу сделать это своими силами, ковыряя .htaccess, добавляя редиректы для useragent, но моих познаний мне не хватило и на помощь пришел, а точнее пришла девушка фрилансер по имени Виктория. Она то и написала этот скрипт, а так как я за него заплатил и мы воспользовались услугами сайта по поиску фрилансеров, то считаю имею право его опубликовать на своем блоге:)

Сразу скажу, что я не программист и с терминологией у меня туго, но это не мешает мне поделиться с вами тем, что я имею и меня устраивает. Кто то сможет его использовать для своих нужд не меняя ничего(как я), а кто-то сделает из него что-то большее и так же поделится с нами.

В самом скрипте все достаточно хорошо расписано и объяснено что и как.

Расскажу вкратце.

Скрипт имеет 3 уровня распознавания клиента.

1. С полной передачей заголовков для анализа Яндексу

2. Сами отыскиваем UserAgent и посылаем Яндексу

3. Анализируем User-Agent самостоятельно
Если получаем не компьютер и не планшет, то переадресовываем на мобильную версию сайта.

Как поставить:
Копируете и вставляете в notepad++ или где вам удобней работать скрипт(сохраняете как mob.php) или скачиваете готовый файл(вирусов нет), закидываете его в корень основного сайта(не мобильного) и в index.php прописываете исполнение этого файла, после самого первого знака начала кода

<? php

с новой строки пишем:

include "mob.php";

Вместо mob.php имя своего файла, если вдруг решили поменять.

Первый раз я прописал это дело в index.php который лежит в папке моей темы, но был не прав и редирект не сработал, а когда прописал в индексе который лежит в public_html, то все заработало.

Скрипт:

В самом начале скрипта нужно указать адрес основного сайта и адрес мобильной версии.

 

<!—?php

///НАСТРОЙКИ РАБОТЫ СКРИПТА// 

///Здесь указывается адрес Основного Сайта.

///Пустым оставлять нельзя!

$mainsite=»http://yoursite.ru»;

/// Здесь указывается адрес редиректа для мобильных телефонов.

/// Пустым оставлять нельзя!

$mobile=»http://m.yoursite.ru»;

/// То есть при обнаружении мобильного посетителя зашедшего

/// на любую страницу он будет средирекчен на адрес редиректа.

/// Следующий параметр отвечает за то, редиректить ли пользователя

/// на аналогичную мобильную страницу

/// (зашел на http://www.site.ru/mypage.php?some=100500,

/// средиректился на http://www.site.ru/mypage.php?some=100500)

/// в этом случае — значение «page», а если если всех редиректить

/// на главную(или ту, что прописана в предыдущем параметре)

/// мобильной версии — тогда значение «main»

$redir=»main»;

 

/////// КОД, НАСТРОЕК НЕТ ///////////

//1-й способ с полной передачей заголовков для анализа Яндексу

$ismobile=false; $sx=1024; $sy=1024;

$headers = »; foreach ($_SERVER as $key =—> $value) {

if (strpos($key, ‘HTTP_’) === 0 && $key != ‘HTTP_HOST’ && $key != ‘HTTP_CONNECTION’) {

$key = strtolower(strtr(substr($key, 5), ‘_’, ‘-‘));

$headers .= $key . ‘: ‘ . $value . «\r\n«;

}

}

 

$opts = array(

‘http’=>array(

‘method’=>»GET»,

‘header’=> $headers,

)

);

$otv = file_get_contents(‘http://phd.yandex.net/detect’, false, stream_context_create($opts));

$convert = explode(«\n«, $otv);

for ($i=0;$i<count($convert);$i++) {=»» if=»» (strlen($convert[$i])=»»> 3)

{

$pos = strpos($convert[$i], ‘screenx’);

if ($pos > 0) {

$sx = strip_tags($convert[$i]) + 0;

}

$pos = strpos($convert[$i], ‘screeny’);

if ($pos > 0) {

$sy = strip_tags($convert[$i]) + 0;

}

}

}

if ($sx < 700) {

$ismobile=true;

}

if ($sy < 500) { $ismobile=true; } //Для надежности — второй способ, сами отыскиваем UserAgent и посылаем Яндексу $url = ‘http://phd.yandex.net/detect’; $uag = $_SERVER[‘HTTP_USER_AGENT’]; ////Для тестирования $uag = ‘SonyEricssonG502/R1FA Browser/NetFront/3.4 Profile/MIDP-2.1 Configuration/CLDC-1.1’; $query = http_build_query(    array(        ‘user-agent’  => $uag,

)

);

 

$otv=file_get_contents($url . ‘?’ . $query);

$convert = explode(«\n«, $otv);

for ($i=0;$i<count($convert);$i++) {=»» if=»» (strlen($convert[$i])=»»> 3)

{

$pos = strpos($convert[$i], ‘screenx’);

if ($pos > 0) {

$sx = strip_tags($convert[$i]) + 0;

}

$pos = strpos($convert[$i], ‘screeny’);

if ($pos > 0) {

$sy = strip_tags($convert[$i]) + 0;

}

}

}

 

if ($sx < 700) {

$ismobile=true;

}

if ($sy < 500) { $ismobile=true; } /////////  Это третий способ, проанализируем User-Agent самостоятельно! $pos = strpos($uag, ‘PC’); if ($pos > 0) {

$ismobile=false;

}

$pos = strpos(strtoupper($uag), ‘MOBILE’);

if ($pos > 0) {

$ismobile=true;

}

 

$pos = strpos(strtoupper($uag), ‘TABLET’);

if ($pos > 0) {

$ismobile=false;

}

 

$pos = strpos(strtoupper($uag), ‘IPHONE’);

if ($pos > 0) {

$ismobile=true;

}

 

$pos = strpos(strtoupper($uag), ‘IPAD’);

if ($pos > 0) {

$ismobile=false;

}

 

$pos = strpos(strtoupper($uag), ‘TRANSFORM’);

if ($pos > 0) {

$ismobile=false;

}

 

// Если это — не комп и не планшетник, то готовим адрес редиректа…

if ($ismobile)

{

if ($redir == ‘main’)

{

$adr=$mobile;

}

 

if ($redir == ‘page’)

{

$adr=str_replace($mainsite, $mobile, «http://».$_SERVER[‘SERVER_NAME’].$_SERVER[‘REQUEST_URI’]);

}

// ..и, собственно редиректим (301-й — самый правильный редирект)

header(«HTTP/1.1 301 Moved Permanently»);

header(«Location: «.$adr);

exit();

}

 

//Все.

В итоге редирект работает как мне надо, правда в нем не реализованна возможность поставить на сайт кнопки выбора версии сайта, т.к. всегда срабатывает редирект отправляя вас обратно на версию сайта которую определяет детектор, но в моем случае это не критично. Хотя, если кто-то подскажет как это сделать, то будет здорово!

Как на телефоне сделать мобильную версию яндекс на Как на телефоне сделать мобильную версию яндекс на Как на телефоне сделать мобильную версию яндекс на Как на телефоне сделать мобильную версию яндекс на Как на телефоне сделать мобильную версию яндекс на Как на телефоне сделать мобильную версию яндекс на Как на телефоне сделать мобильную версию яндекс на Как на телефоне сделать мобильную версию яндекс на Как на телефоне сделать мобильную версию яндекс на Как на телефоне сделать мобильную версию яндекс на

Тоже читают:



Поздравления с днем рождения двумя строчками

Короткое поздравление на свадьбу от мамы жениха своими словами

Усилители напряжения своими руками

Поздравления с днем дошкольного работника сценарий

Маленькие куклы амигуруми крючком схемы