rewrite_request_cookie

Директива `rewrite_request_cookie` изменяет значение существующего cookie в соответствии с указанными условиями.

Синтаксисrewrite_request_cookie cookie_name new_value [if=condition];
По умолчаниюnone
Контекстhttp, server, location
Аргументы2-3

Описание

Директива rewrite_request_cookie принадлежит модулю Fine-grained request cookies control в NGINX, который предоставляет возможность корректировать значения cookie на основе заданных условий во время обработки запроса. Эта директива принимает два или три аргумента: имя cookie для переписывания, новое значение для присвоения и необязательное условие, определяющее, когда должно происходить переписывание. Если указанный cookie присутствует в запросе, его значение заменяется на новое; если cookie отсутствует, директива не влияет на запрос, если только явно не включён условный блок, который позволит выполнить действие директивы на основе состояний переменных.

Поведение rewrite_request_cookie можно изменить, задав дополнительные условия с помощью аргумента if. Это позволяет выполнять переписывание только при определённых обстоятельствах, повышая точность и контроль над тем, как манипулируются cookie. Например, если условие оценивается как ложное или указанный cookie не существует, переписывание не произойдёт, сохраняются исходные значения cookie запроса. Важно обеспечить корректный синтаксис и структуру, чтобы избежать ошибок или нежелательного поведения при обработке ответов, особенно при последовательном вызове нескольких директив в блоке конфигурации.

Эта директива особенно полезна в сценариях, когда приложениям требуется динамически обновлять значения cookie на основе логики, определённой в пути запроса, и может помочь эффективно управлять пользовательскими сессиями и процессами аутентификации.

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

location / {
    rewrite_request_cookie session_id new_value if=$http_session_active;
}
⚠

Убедитесь, что указанное имя cookie чувствительно к регистру, так как имена cookie уникальны по регистру в заголовках HTTP.

⚠

При использовании необязательного условия проверьте, правильно ли оно оценивается, чтобы определить, следует ли выполнять перезапись.

⚠

Если cookie не существует, создание правила для него не создаст новый cookie, что может привести к потенциально запутанным состояниям.

← Ко всем директивам