0

目标:我想根据以下条件重写:

  • 用户代理是 Iphone 或 Blackberry
  • uri 中没有“redirect=false”。

我有下面的代码,我认为它可以工作,但没有。如果设置了用户代理,它只会一直重定向,但会忽略该$uri条件。

location / {
  if ( $uri  ~* "redirect=false" ) {
    set $var_redirect F;
  }

  if ( $http_user_agent ~* "iPhone|BlackBerry" ) {
    set $var_redirect "${var_redirect}M";
  }

  if ( $var_redirect = M ) {
    rewrite ^ http://m.domain.com redirect;
  }
}

另一种选择是仅当位置是 / 但不是子文件夹时才将重定向错误条件替换为

4

1 回答 1

1

如果redirect=false是在参数中发送,相信你需要在条件中$uri替换为,后面的nginx版本也可以使用$argsredirect=falseif($arg_redirect = false)

于 2013-10-09T05:13:33.340 回答