nginx: redirect mobile requests to /mobile/$uri

后端 未结 3 1243
轮回少年
轮回少年 2021-02-09 18:00

I am trying to setup my nginx to redirect all the requests from mobile devices to /mobile/$uri i came up with this solution but it doesn\'t seem to work. Is it a syntax problem

相关标签:
3条回答
  • 2021-02-09 18:41
        #initliaze mobile
        set $mobile "";
    
        if ($request_uri !~* "^/mobile.*" ){
            set $mobile Y;
        }
        if ($http_user_agent ~* (iPhone|iPod|android|blackberry) ) {
            set $mobile "${mobile}E";
        }
    
        if ( $http_referer !~* "xxx\.org" ){
           set $mobile "${mobile}S";
        }
    
        if ( $host ~* "xxx\.org" ){
           set $mobile "${mobile}S";
        }
    
        if ($mobile = YESS){
            rewrite ^ $scheme://$host/mobile$request_uri ;
        }
    
    0 讨论(0)
  • 2021-02-09 18:54

    You should use different locations:

    location / {
        if ($http_user_agent ~* '(iPhone|iPod|android|blackberry)') {
            return 301 /mobile$request_uri;
        }
    }
    
    location /mobile/ {
    
    }
    

    btw, http://nginx.org/r/return

    0 讨论(0)
  • 2021-02-09 19:05

    Use http://detectmobilebrowsers.com/ It has scripts for all webservers and client/server side languages.

    0 讨论(0)
提交回复
热议问题