Redirect nginx:将移动请求重定向到/mobile/$uri
我正在尝试将我的nginx设置为将来自移动设备的所有请求重定向到/mobile/$uri 我想出了这个解决方案,但似乎不起作用。这是语法问题还是对整个重定向概念的误解Redirect nginx:将移动请求重定向到/mobile/$uri,redirect,proxy,nginx,Redirect,Proxy,Nginx,我正在尝试将我的nginx设置为将来自移动设备的所有请求重定向到/mobile/$uri 我想出了这个解决方案,但似乎不起作用。这是语法问题还是对整个重定向概念的误解 if ($http_user_agent ~* '(iPhone|iPod|android|blackberry)') { rewrite ^(.*) http://xxxx.org/mobile/$1 permanent; } 当我使用安卓手机时,我得到了类似xxx.org/mobile/mobile/m
if ($http_user_agent ~* '(iPhone|iPod|android|blackberry)') {
rewrite ^(.*) http://xxxx.org/mobile/$1 permanent;
}
当我使用安卓手机时,我得到了类似xxx.org/mobile/mobile/mobile/mobile的东西
有什么想法?有什么建议吗?您应该使用不同的位置:
location / {
if ($http_user_agent ~* '(iPhone|iPod|android|blackberry)') {
return 301 /mobile$request_uri;
}
}
location /mobile/ {
}
顺便说一句,使用它有用于所有Web服务器和客户端/服务器端语言的脚本 这取决于你的需要。它可能为空,因此从父上下文继承一些值。或者它可以包含您需要的任何配置和任何嵌套位置
#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 ;
}