Я пытаюсь блокировать/позволять доступ к конкретному 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 принимать что-либо, что я попробовал.
Заранее спасибо.
به نظر می رسد که موارد زیر کار می کند.
if ($http_user_agent !~* "My%20App/*") {
return 403;
}