Страницы

Поиск по вопросам

понедельник, 27 мая 2019 г.

Как сделать в nginx переадресацию на мобильную версию?

Необходимо сделать переадресацию на мобильную версию сайта расположенную по адресу site.com/m , но при этом, если заходит на site.com/full то не зависимо должен переадресовывать на site.com/ Нашел такое решение
set $mobile_request false; if ($http_user_agent ~* "(windows\smobile|windows\sce|iphone|ipod|midp|symbian|series\s60|s60|nokia|аndroid| blackberry|Android)"){ set $mobile_request true; } rewrite ^(/full)(.*)$ \#$2 permanent; if ($mobile_request = true) { return 301 /m$request_uri; }
но тут если зайти с телефона, то на site.com не переадресовывает. Подскажите какое-то решение.


Ответ

у меня получилось сделать, правда пришлось использовать для мобильной версии отдельный домен.
server { listen 443 ssl; server_name site.com;
location /full { set $mobile_request 0; rewrite ^/full(.*)$ $1 break; } }
location / { set $mobile_request 1; if ($http_referer ~* "https://(.*).site.com/") { set $mobile_request "0"; } if ($http_user_agent ~* "(windows\smobile|windows\sce|iphone|ipod|midp|symbian|series\s60|s60|nokia|аndroid| blackberry|Android)"){ set $mobile_request "${mobile_request}1"; } if ($mobile_request = 11) { set $mobile_request "0"; return 302 https://m.site.com/; }
}
} server { listen 443; server_name m.site.com;
location / { ...
} location /full { return 301 https://site.com$request_uri; } }
возможно кому-нибудь пригодится :)

Комментариев нет:

Отправить комментарий