$arg_*

变量 $arg_ 从请求 URI 中检索特定查询参数的值。 — NGINX Core (HTTP)

$arg_* NGINX Core (HTTP)

说明

在 NGINX 中,以 $arg_ 为前缀的变量用于从请求 URI 中提取查询参数。当客户端发起 HTTP 请求时,URL 可能附带由键值对组成的查询字符串。例如,在请求 URL `http://example.com/path?arg1=value1&arg2=value2` 中,NGINX 允许通过类似 `$arg_arg1` 和 `$arg_arg2` 的相应变量访问这些参数。特定 `$arg_` 变量返回的值对应于关联查询参数的值;如果该参数不存在,则变量返回空字符串。 在需要根据客户端参数影响请求处理的场景(例如重定向、访问控制或条件响应)中,这些变量尤其有用。它们在每次处理请求时都会被求值,因此适合基于客户端输入生成动态内容。需要注意的是,由于这些变量具有上下文敏感性,正确使用它们需要理解 NGINX 配置,尤其是与依赖这些变量的指令放置相关的部分。

配置示例

location /example {
    if ($arg_user_id) {
        return 200 "User ID: $arg_user_id";
    }
    return 400 "No User ID provided";
}

子系统

http

可缓存

类型

前缀变量

上下文

http, server, location, if

确保请求 URL 中的查询参数已正确编码;否则可能无法被正确解析。

将 if 语句与这些变量一起使用时,如果结构不够严谨,可能会导致意外行为;最好在干净的 location 配置块内使用它们。