nginx:将移动请求重定向到/mobile/$ uri [英] nginx: redirect mobile requests to /mobile/$uri

查看:396
本文介绍了nginx:将移动请求重定向到/mobile/$ uri的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试设置我的Nginx,以将来自移动设备的所有请求重定向到/mobile/$ uri 我想出了这个解决方案,但似乎没有用.是语法问题还是对整个重定向概念的误解.

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 or a misunderstanding of the whole redirecting concept.

if ($http_user_agent ~* '(iPhone|iPod|android|blackberry)') {
     rewrite     ^(.*)   http://xxxx.org/mobile/$1 permanent;
}

当我使用Android手机时,我得到的是类似xxx.org/mobile/mobile/mobile/mobile....

When i use my android phone i am getting something like xxx.org/mobile/mobile/mobile/mobile....

有什么想法吗?有什么建议吗?

Any ideas?Any suggestions?

推荐答案

    #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 ;
    }

这篇关于nginx:将移动请求重定向到/mobile/$ uri的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆