如何使用nginx位置限制访问以匹配带有字符串和数字的表达式的URL?

时间:2015-12-13 01:02:19

标签: nginx reverse-proxy nginx-location

我有以下路径作为Nginx位置:

/ API /用户

我的用户访问的网址是/ api / users?id = 109238717283223

问题是我不希望直接路径/ api /用户可以访问,目标是仅在网址包含用户时允许访问?id = number(具有确切的位数)

我怎么能用正则表达式实现这个目标?

1 个答案:

答案 0 :(得分:0)

可以使用$arg_变量前缀访问各个参数。它可以使用if指令针对正则表达式进行测试。例如,确保id参数恰好为15位数的完全匹配位置:

location = /api/users {
    if ($arg_id ~ ^\d{15}$) { return 403; }
    ...
}

使用if指令了解有关限制的this documentation