$document_uri
Переменная $document_uri содержит URI запроса без строки запроса и с декодированными процентно-кодированными символами. — NGINX Core (HTTP)
Описание
Переменная $document_uri устанавливается в процессе обработки запроса в NGINX и представляет ту часть URI, которая используется для идентификации запрашиваемого ресурса. В отличие от переменной $request_uri, которая включает строку запроса, $document_uri содержит исключительно путь URI, что делает её пригодной в сценариях, где строка запроса не нужна. Эта переменная особенно полезна при документировании или журналировании обращений к URI на сервере, позволяя отслеживать целевые запросы ресурсов без влияния параметров строки запроса URL. Значение $document_uri определяется после того, как запрос был обработан системой маршрутизации NGINX, конкретно в контексте location. Это означает, что оно может отражать решения NGINX относительно переписывания URI или использования определённых location-блоков. Типичные значения $document_uri могут варьироваться от простых путей, таких как "/index.html", до структурированных URI, таких как "/products/item123". Любые процентно-кодированные символы в URI декодируются для получения более чистого и удобочитаемого вывода при использовании этой переменной. Использование этой переменной в access logs, rewrites или условных выражениях может упростить конфигурацию, особенно когда требуются конкретные действия на основе запрашиваемого ресурса. Например, форматы логов могут включать $document_uri, чтобы отслеживать, какие документы запрашиваются чаще всего.
Пример конфига
log_format mylog '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$document_uri"'; access_log /var/log/nginx/access.log mylog;
Подсистема
httpКэшируется
НетКонтексты
http, server, location, ifПомните, что $document_uri не включает строку запроса; используйте $request_uri, если требуется строка запроса.
Переменная устанавливается после того, как запрос сопоставлен с location; убедитесь, что вы находитесь в корректном контексте, где она определена.