regex-用于忽略请求参数的nginx规则

前端之家收集整理的这篇文章主要介绍了regex-用于忽略请求参数的nginx规则 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

好的,我只想在/ search调用添加参数:

rewrite ^/search$/search?foo=bar redirect;

看似简单的逻辑,但会导致无限循环,因为Nginx会分别获取参数,因此$不再起作用. / search?foo = bar一次又一次触发它,因为它愚蠢地匹配.

因此,有没有不触及$args的有效解决方案?

(我想使用正则表达式,因为匹配规则更加复杂,但基本上是我想要的)

最佳答案
根据the nginx wiki,“重写只能在路径上进行,而不能在参数上进行.”

因此,也许关键是仅在找不到参数的情况下才重写.

    if ($args !~ "(^|&)foo=") {
        rewrite ^/search$/search?foo=bar redirect;
    }
原文链接:https://www.f2er.com/nginx/532386.html

猜你在找的Nginx相关文章