$is_args
变量 $is_args 指示当前请求的查询字符串中是否包含参数。 — NGINX Core (HTTP)
$is_args
NGINX Core (HTTP)
说明
NGINX 中的 $is_args 变量返回一个字符串,该字符串要么为空,要么只包含一个问号('?')。它专门表示当前请求的 URI 中是否存在查询字符串参数。当请求包含查询参数时(例如 '/path?arg=value'),$is_args 变量将被求值为 '?',这在构造保留目标 URI 查询字符串的重定向或重写时很有用。 该变量在 NGINX 请求处理生命周期中的请求处理过程中被设置。如果请求 URI 不包含任何查询参数,$is_args 将是空字符串。相反,如果请求带有查询参数,例如 'arg1=value1&arg2=value2',NGINX 会将 $is_args 设置为仅为 '?',而不考虑存在的参数。因此,它的值并不反映查询字符串的内容本身,而只是表示其存在。
配置示例
location /example {
if ($is_args) {
rewrite ^ /another_example$is_args last;
}
}子系统
http可缓存
否上下文
http, server, location, if⚠
在未定义的上下文中使用 $is_args 会导致意外行为。请确保在适当的上下文中使用它,通常是在 location 或 server block 内。
⚠
不要假设 $is_args 会提供实际的查询字符串;它仅在存在参数时提供 '?',而不会提供参数内容。