在 Nginx 请求中使用变量

各位程序员们,早上好。 我正在尝试保护一个文件,为此,我只想允许我定义的请求_uri。 例如:

if ($request_uri !~* "d=123") {
return 403;
}

在这种情况下,这个示例可以工作,但我想做这样的事情:

set $teste 123;
if ($request_uri !~* "d=$teste") {
return 403;
}

因此,我想通过变量完成,这是可能的吗?因为我已经测试了很多示例,但没有一个能工作。

P.S:我正在使用 OpenResty(Nginx+Lua),所以如果有可能的解决方案,我也会接受使用lua。

点赞
用户7121513
用户7121513

假设 d 是你的查询参数,而 123 是它的值,你可以尝试如下操作:

set $teste 123;
if ($request_uri ~* "[?&]d=([^&]*)") { set $d $1; }
if ($d != $teste) {
    return 403;
}
2020-06-02 20:53:45