$sent_http_location
Переменная $sent_http_location содержит HTTP-заголовок Location, отправляемый в ответе при внутренней переадресации. — NGINX Core (HTTP)
Описание
Переменная $sent_http_location заполняется во время внутренней переадресации в NGINX, в частности когда модуль обрабатывает запрос, который приводит к 3xx HTTP-ответу. Этой переменной присваивается значение заголовка 'Location', установленного такими директивами, как `rewrite`, `error_page` или `proxy_redirect`. Она содержит перенаправляемый URL, на который будет отправлен клиент, что особенно полезно при обработке ситуаций, когда управление доступом или логика применяются на основе вводимых пользователем данных или путей запроса. Переменная устанавливается только если происходит внутренняя переадресация на другой URI и может использоваться в разных контекстах, включая логирование конечного URL, на который перенаправлен запрос, или использование её совместно с другими переменными NGINX для расширенной логики ответа. Типичные значения включают абсолютные URL (например, "http://example.com/target") или относительные URI (например, "/target") в зависимости от того, как настроена переадресация в сервере NGINX.
Пример конфига
server {
listen 80;
location /example {
return 302 /new-location;
}
location /new-location {
add_header Location $sent_http_location;
return 200 'Redirected to new location';
}
}Подсистема
httpКэшируется
ДаКонтексты
http, server, location, if$sent_http_location устанавливается только во время внутренних перенаправлений и может не содержать значения, если перенаправление не выполняется.
Убедитесь, что заголовок Location действительно установлен; в противном случае эта переменная будет пустой.
Эта переменная недоступна в начальном контексте обработки запроса и будет актуальна только после выполнения перенаправления.