$is_args
Переменная $is_args указывает, содержит ли текущий запрос аргументы в строке запроса. — NGINX Core (HTTP)
Описание
Переменная $is_args в NGINX возвращает строку, которая либо пустая, либо содержит одиночный знак вопроса ('?'). Она указывает на наличие параметров строки запроса в 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 вернёт фактическую строку запроса; он возвращает только '?' если параметры существуют, а не их содержимое.