好的,我只想在/ search调用时添加参数:@H_403_2@
@H_403_2@
rewrite ^/search$/search?foo=bar redirect;
看似简单的逻辑,但会导致无限循环,因为Nginx会分别获取参数,因此$不再起作用. / search?foo = bar一次又一次触发它,因为它愚蠢地匹配.@H_403_2@
因此,有没有不触及$args的有效解决方案?@H_403_2@
(我想使用正则表达式,因为匹配规则更加复杂,但基本上是我想要的)@H_403_2@
最佳答案
根据the nginx wiki,“重写只能在路径上进行,而不能在参数上进行.”@H_403_2@
原文链接:https://www.f2er.com/nginx/532386.html因此,也许关键是仅在找不到参数的情况下才重写.@H_403_2@
@H_403_2@
if ($args !~ "(^|&)foo=") {
rewrite ^/search$/search?foo=bar redirect;
}