Рейтинг:1

Почему это регулярное выражение совпадает, но не местоположение / в NGINX

флаг in

В основном у меня есть эти два места в NGINX (коды возврата добавлены для целей отладки)

место расположения / {
    вернуть 401;
}


location ~ "^/(активы|((de|en|es|fr|it|zh|ru)-[a-z]{3}))" {
    вернуть 402;
}
         

Идея состоит в том, чтобы вернуть 401 на GET https://www.example.com/, но всегда возвращает 402

Как это может быть?

$ http https://www.example.com/ --print Чч
ПОЛУЧИТЬ/HTTP/1.1
Принимать: */*
Accept-Encoding: gzip, deflate
Соединение: Keep-alive
Хост: www.example.com
Пользовательский агент: HTTPie/1.0.3

HTTP/1.1 402 Требуется оплата
Соединение: Keep-alive
Длина контента: 176
Тип содержимого: текст/html
Дата: пн, 07 июня 2021 г., 10:07:37 по Гринвичу
Сервер: nginx/1.18.0 (Ubuntu)

Я также проверил регулярное выражение на https://nginx.viraptor.info/ и это не соответствует www.example.com/ запрос, поэтому я считаю, что он должен столкнуться с место расположения / блокировать?

РЕДАКТИРОВАТЬ: До этого у меня есть некоторые

переписать ^/$ /de-abc/;
Richard Smith avatar
флаг jp
`location /` соответствует запросу только в том случае, если ему не соответствует никакое другое `location`. Это все содержимое блока server? Если вы хотите конкретно сопоставить `/`, используйте `location = /`.
флаг in
Это не все содержимое, я могу попытаться его уварить, но почему оно похоже на совпадение с регулярным выражением?
Richard Smith avatar
флаг jp
Пожалуйста, отредактируйте вопрос и добавьте больше деталей. Очевидно, что исходный запрос не соответствует этому «местоположению», но мы понятия не имеем, как обрабатывается исходный запрос.
Michael Hampton avatar
флаг cz
Пожалуйста, опубликуйте вывод `nginx -T`
флаг in
я нашла - спасибо
Рейтинг:0
флаг in

Причинами был рерайт, который раньше не был редиректом в конфиге

переписать ^/$ /de-abc/;

Я намеревался использовать

переписать ^/$ /de-abc/ перенаправить;

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.