nginx 邪恶么如果替代?

nginx 邪恶么如果替代?

寻找除了在这种情况下使用 if 之外是否有更好的方法来重定向查询字符串。

示例 URL:http://foo.com/?p=123http://foo.com/new

当前使用情况:

location / {
  if ($args ~ p=123) {
  rewrite ^ https://foo.com/new? permanent;
  }
}

答案1

您应该检查实际的参数值,这样您就不会op=1234在想要匹配时意外匹配某些内容p=123

return出于性能原因,除非rewrite您确实需要正则表达式匹配,否则您还应该使用而不是。

例如:

if ($arg_p = 123) {
    return 301 https://example.com/new;
}

(当然,return与之一起使用也是完全没问题的if。)

相关内容