除非存在查询字符串,否则重定向到子域(nginx)

除非存在查询字符串,否则重定向到子域(nginx)

我正在尝试以这种方式将特定子页面重定向到子域:

  1. 如果查询字符串不存在,则处理重定向到子域
  2. 如果存在特定查询字符串,则不重定向

以下处理重定向:

      if ($page = ""){
        return 301 https://subdomain.example.com/$1/;
      }
      try_files  $uri $uri/ index.php?args;

但是,当我尝试排除查询字符串时,这不起作用:

      if ($page = ""){
        return 301 https://subdomain.example.com/$1/;
      }
      if ($is_args = ""){
        return 301 https://example.com$is_args$request_uri;
      }
      try_files  $uri $uri/ index.php?args;

我怎样才能做到这一点?

答案1

在 $is_args 条件中,您检查它是否为空。如果是,您使用空字符串吗?这有什么意义吗?

另外,尝试改变条件的顺序。如果没有参数,则 $page 也将为空:

  if ($is_args = ""){
    return 301 https://example.com$request_uri;
  }
  if ($page = ""){
    return 301 https://subdomain.example.com/$1/;
  }
  try_files $uri $uri/ index.php?args;

相关内容