nginx “запускается с” regex

Я пытаюсь блокировать/позволять доступ к конкретному vhost на основе сопоставления строк имени агента Пользователя HTTP.

Номер версии приложения в изменениях агента Пользователя HTTP, например.

My%20App/1.55.01 CFNetwork/711.5.6 Darwin/14.0.0
My%20App/1.49.03 CFNetwork/711.5.6 Darwin/14.0.0
My%20App/1.35.02 CFNetwork/711.5.6 Darwin/14.0.0

Я хочу соответствовать всему запускающемуся с My%20App/ - чему-либо, что соответствует, нужно предоставить доступ, что-либо еще должно получить HTTP 403.

Я не хочу должным быть обновлять конфигурацию nginx каждый раз, когда новая версия приложения приходит.

Следующее хорошо работает:

if ($http_user_agent !~* "My%20App/1.55.01 CFNetwork/711.5.6 Darwin/14.0.0") {
    return 403;
}

Я полагаю, что мне нужно решение, которое включает шляпу (^) для "запускается с", но я не могу заставить nginx принимать что-либо, что я попробовал.

Заранее спасибо.

0
задан 6 September 2015 в 17:42
1 ответ

به نظر می رسد که موارد زیر کار می کند.

if ($http_user_agent !~* "My%20App/*") {
    return 403;
}
1
ответ дан 4 December 2019 в 16:50

Теги

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