$query_string

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

说明

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";
    }
}

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

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

← 返回所有变量