$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 或重定向时可能会导致混淆。