好的,我只想在/ search调用时添加参数:
rewrite ^/search$/search?foo=bar redirect;
看似简单的逻辑,但会导致无限循环,因为nginx会分别获取参数,因此$不再起作用. / search?foo = bar一次又一次触发它,因为它愚蠢地匹配.
因此,有没有不触及$args的有效解决方案?
(我想使用正则表达式,因为匹配规则更加复杂,但基本上是我想要的)
最佳答案
根据the nginx wiki,“重写只能在路径上进行,而不能在参数上进行.”
因此,也许关键是仅在找不到参数的情况下才重写.
if ($args !~ "(^|&)foo=") {
rewrite ^/search$/search?foo=bar redirect;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。