$query_string
变量 $query_string 包含客户端请求 URI 中的查询字符串部分,不包括前导的 '?'。
NGINX Core (HTTP)
·
http
·
可缓存: 否
说明
NGINX 中的 $query_string 变量捕获客户端请求 URI 中的查询字符串。查询字符串是 URL 中跟在 '?' 字符之后的部分,通常包含参数及其值。例如,在 URL http://example.com/index.html?name=John&age=30 中,查询字符串是 name=John&age=30。当收到请求时,NGINX 会自动填充该变量,可在多种上下文中使用,尤其是在用于条件逻辑的 location 块中。
该变量对于根据查询字符串中传递的特定参数实现逻辑很有用。例如,可以在重写、访问控制或日志配置中使用 $query_string,以根据参数引导请求。需要注意的是,该变量只是查询字符串的简单字符串表示,并不解析其内容;如果需要对参数进行更细粒度的控制,管理员需自行处理解析。
上下文http, server, location, if
配置示例
location /search {
if ($query_string ~* "keyword=(.*)") {
set $search_keyword $1;
add_header Search-Keyword "$search_keyword";
}
}⚠
确保你的查询字符串参数不包含敏感信息,因为它们可能会被记录或在 URLs 中暴露。
⚠
请记住,$query_string 变量不包括 '?' 字符。这在构造 URLs 或重定向时可能会导致混淆。