我有以下路径作为 Nginx 位置:
/api/用户
我的用户访问的 url 是 /api/users?id=109238717283223
问题是我不希望直接路径 /api/users 可访问,目标是仅当 url 包含 users?id=number(具有确切的位数)时才允许访问
我怎么能用正则表达式实现这一点?
我有以下路径作为 Nginx 位置:
/api/用户
我的用户访问的 url 是 /api/users?id=109238717283223
问题是我不希望直接路径 /api/users 可访问,目标是仅当 url 包含 users?id=number(具有确切的位数)时才允许访问
我怎么能用正则表达式实现这一点?
可以使用$arg_
变量前缀访问各个参数。可以使用if
指令针对正则表达式对其进行测试。例如,确保id
参数正好是 15 位的精确匹配位置:
location = /api/users {
if ($arg_id ~ ^\d{15}$) { return 403; }
...
}
阅读有关使用该指令的限制的文档。if