Необходимо сделать переадресацию на мобильную версию сайта расположенную по адресу 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;
}
}
возможно кому-нибудь пригодится :)
Комментариев нет:
Отправить комментарий