1

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

/api/用户

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

问题是我不希望直接路径 /api/users 可访问,目标是仅当 url 包含 users?id=number(具有确切的位数)时才允许访问

我怎么能用正则表达式实现这一点?

4

1 回答 1

0

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

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

阅读有关使用该指令的限制的文档。if

于 2015-12-13T22:16:15.457 回答