absolute_redirect

Директива `absolute_redirect` управляет тем, использует ли NGINX абсолютные URI при перенаправлении запросов. — NGINX HTTP Core

absolute_redirect
httpserverlocation
Синтаксисabsolute_redirect on | off;
По умолчаниюoff
Контекстhttp, server, location
МодульNGINX HTTP Core
Аргументыflag

Описание

Директива `absolute_redirect` в NGINX определяет, следует ли использовать абсолютные URI в перенаправлениях. По умолчанию NGINX генерирует перенаправления с относительными URI, что может приводить к несоответствиям в приложениях, где требуются полные URL с указанием протокола и имени хоста. При включении NGINX формирует ответы перенаправления с полным URL, включая схему (http или https) и информацию о хосте. Директива принимает флаговый аргумент, который может быть `on` или `off`: `on` означает, что для ответов перенаправления следует использовать абсолютные URI, а `off` — что не следует. Эта настройка особенно полезна при развёртывании NGINX за другими прокси или при обработке сложных сценариев маршрутизации, когда клиенту нужно явно сообщать точный целевой URI для обеспечения корректной работы. Директива может быть задана в блоках конфигурации, таких как http, server или location, что позволяет тонко настраивать поведение перенаправлений в разных частях приложения. Неправильная конфигурация может привести к битым ссылкам или неожиданному поведению перенаправлений веб-приложения.

Пример конфига

server {
    listen 80;
    server_name example.com;

    absolute_redirect on;

    location /old-path/ {
        return 301 /new-path/;
    }
}

Убедитесь, что директива задана в правильном контексте (http, server или location), чтобы избежать неожиданных последствий.

Использование absolute_redirect on может раскрыть внутреннюю структуру сервера при неправильной настройке, поэтому проверьте шаблоны URI.