@olezhenka

Почему регулярное выражение неправильно работает?

Мне нужно сделать условие, что куки sid не существует. Я проверил в логах, когда куки не существует, то вместо него ставится "-"
Так что написал я следующее:
map $cookie_sid:$request_uri $redirect_uri {
                "~^-:/[\d\w/]+$"                "/";
        }

Если куки не существует и запрос идет в директорию дальше чем в /, напр: /account, /search и тд, то отдать переменной $redirect_uri значение "/";

Ничего не работает как я описал, в логах видно следующее:
$cookie_sid:$request_uri => -:/account
Но $redirect_uri не определяется, в нем пустота.
  • Вопрос задан
  • 41 просмотр
Решения вопроса 1
Lynn
@Lynn
nginx, js, css
map $cookie_sid:$request_uri $redirect_uri {
    "~^:/[\d\w/]+$" "/";
}


Несуществующая кука это пустая строка. Дефис (-) в логах это просто особенность логирования.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы