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

もう 1 つのオプションは、リダイレクトの false 条件を、場所が / であるがサブ フォルダーではない場合のみに置き換えることです。

4

1 に答える 1

1

パラメータで が送信された場合、条件でredirect=falseに置き換える必要があると思います。以降の nginx バージョンでも使用できます$uri$argsredirect=falseif($arg_redirect = false)

于 2013-10-09T05:13:33.340 に答える