$is_args

Переменная $is_args указывает, содержит ли текущий запрос аргументы в строке запроса. — NGINX Core (HTTP)

$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 вернёт фактическую строку запроса; он возвращает только '?' если параметры существуют, а не их содержимое.