$arg_*
Переменная $arg_ возвращает значение конкретного параметра запроса из URI. — NGINX Core (HTTP)
Описание
В NGINX переменные с префиксом $arg_ используются для извлечения параметров запроса из URI. Когда клиент отправляет HTTP-запрос, он может включать строку запроса, состоящую из пар «ключ=значение», добавленных к URL. Например, в URL запроса `http://example.com/path?arg1=value1&arg2=value2` NGINX позволяет обратиться к этим параметрам через соответствующие переменные, такие как `$arg_arg1` и `$arg_arg2`. Значение, возвращаемое конкретной переменной `$arg_`, соответствует значению связанного параметра запроса; если параметр отсутствует, переменная возвращает пустую строку. Эти переменные особенно полезны в случаях, когда обработка запроса должна зависеть от параметров клиента, например при перенаправлениях, контроле доступа или условных ответах. Они вычисляются при обработке каждого запроса, что делает их удобными для динамической генерации контента на основе ввода клиента. Важно отметить, что поскольку они чувствительны к контексту, их правильное использование требует понимания конфигурации NGINX, особенно в части расположения директив, зависящих от этих переменных.
Пример конфига
location /example {
if ($arg_user_id) {
return 200 "User ID: $arg_user_id";
}
return 400 "No User ID provided";
}Подсистема
httpКэшируется
НетТип
Префиксная переменнаяКонтексты
http, server, location, ifУбедитесь, что параметр запроса правильно закодирован в URL запроса; в противном случае он может быть разобран неверно.
Использование директив if с этими переменными может привести к непредсказуемому поведению, если они не будут аккуратно структурированы; лучше использовать их в контексте чистого location-блока.