$query_string

变量 $query_string 包含客户端请求 URI 中的查询字符串部分,不包括前导的 '?'。 — NGINX Core (HTTP)

$query_string NGINX Core (HTTP)

说明

NGINX 中的 `$query_string` 变量捕获客户端请求 URI 中的查询字符串。查询字符串是 URL 中跟在 '?' 字符之后的部分,通常包含参数及其值。例如,在 URL `http://example.com/index.html?name=John&age=30` 中,查询字符串是 `name=John&age=30`。当收到请求时,NGINX 会自动填充该变量,可在多种上下文中使用,尤其是在用于条件逻辑的 location 块中。 该变量对于根据查询字符串中传递的特定参数实现逻辑很有用。例如,可以在重写、访问控制或日志配置中使用 `$query_string`,以根据参数引导请求。需要注意的是,该变量只是查询字符串的简单字符串表示,并不解析其内容;如果需要对参数进行更细粒度的控制,管理员需自行处理解析。

配置示例

location /search {
    if ($query_string ~* "keyword=(.*)") {
        set $search_keyword $1;
        add_header Search-Keyword "$search_keyword";
    }
}

子系统

http

可缓存

上下文

http, server, location, if

确保你的查询字符串参数不包含敏感信息,因为它们可能会被记录或在 URLs 中暴露。

请记住,`$query_string` 变量不包括 '?' 字符。这在构造 URLs 或重定向时可能会导致混淆。