寻找除了在这种情况下使用 if 之外是否有更好的方法来重定向查询字符串。
示例 URL:http://foo.com/?p=123到http://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
。)