
Предлагаю вашему вниманию простое и дешевое (по ресурса��) решение для перенаправления пользователей мобильных устройств на легкую версию сайта. Решение ориентировано на highload сайты, оптимизация которых основана на кешировании гостевых запросов.
Проверка, является ли клиент мобильным устройством, производится веб-сервером nginx и в случае успеха клиент перенаправляется на поддомен или локейшн. Это существенно экономит ресурсы и позволяет добиться большей масштабируемости по сравнение с PHP методами.
Конфигурация для NGINX
Вариант №1. Мобильная версия расположена на поддомене
server{
< … >
if ( $http_user_agent ~* (windows\smobile|windows\sce|iphone|ipod|midp|symbian|series\s60|s60|nokia|аndroid| blackberry) ){
rewrite ^/(.*) m.site.ru$1 permanent;
}
location / {
< … >
}
}
Вариант №2. Мобильная версия открывалась на том же домене
if ( $http_user_agent ~* (windows\smobile|windows\sce|iphone|ipod|midp|symbian|series\s60|s60|nokia|аndroid| blackberry) ){
rewrite ^/(.*)$ /liteversion/$1 last;
}
Определение мобильного устройства по $http_user_agent позволяет с высокой точностью и с минимальными затратами ресурсов отличать мобильных клиентов от обычных ПК.
Так работают Google и Yandex. Вы можете поменять user_agent своего браузера и убедится в этом.
Конечно, я не знаю, как в точности работает алгоритм определения «мобильника» в G и Y. Но я считаю, что он очень похож на элементарное регулярное выражение написанное выше.
Регулярное выражение содержит список вариаций ключевых слов в строке http_user_agent составленный на основе анализа логов нескольких сайтов. Всего проанализировано около 200 000 запросов за сутки, 5% из которых отправлено с мобильных устройств. Это гарантирует высокую вероятность выхождения в списков всех возможных вариантов user_agent мобильных устройств. Ipad я исключил из-за разрешения экрана в 1024х768px.
Надеюсь, моя заметка будет для вас полезной.
Дополнительно
Переключатель User Agent для Моззилы
Расширенный список юзер агентов