$uri
Переменная $uri в NGINX возвращает часть URI запрошенного ресурса без информации о домене или протоколе. — NGINX Core (HTTP)
Описание
Переменная $uri устанавливается во время обработки HTTP-запроса в NGINX и в основном заполняется неэкранированным request URI, который является частью URL, следующей за доменом и протоколом. Эта переменная может включать путь и query string запрашиваемого ресурса, но не будет содержать дополнительных модификаций, внесённых server или location директивами. Значение $uri определяется на раннем этапе обработки запроса, обычно когда NGINX разбирает клиентский запрос. Это означает, что оно отражает исходное значение, отправленное клиентом, до любых внутренних rewrites или redirects. При использовании в конфигурации сервера переменная $uri позволяет принимать решения на основе фактически запрошенного ресурса. Она особенно полезна в location blocks для контроля доступа, логирования или перенаправления трафика. Значение обычно представляет собой строку, описывающую путь к файлу или маршрут, и может иметь формат '/images/photo.jpg' или '/api/v1/users'. Следует отметить, что если запрос обрабатывался в другом location block, который переписал URI, переменная $uri отразит это изменение.
Пример конфига
location /images {
alias /var/www/images;
error_page 404 = /404.html;
}
location /api/v1 {
proxy_pass http://backend;
access_log /var/log/nginx/api_access.log;
if ($uri ~* /user/(\d+)) {
# Do something specific for user URIs
}
}Подсистема
httpКэшируется
НетКонтексты
http, server, location, if, limit_exceptЗначение $uri может изменяться в зависимости от внутренних правил переписывания, заданных в конфигурации NGINX, поэтому будьте осторожны при использовании его для сопоставления с конкретными блоками location.
$uri не включает строку запроса; используйте $request_uri, если вам нужны и URI, и строка запроса.