@Kazhikumarov
Системный Администратор в ADAB Solutions

Как сделать whitelist URLов в конфиге nginx?

Всем привет. суть вопроса в том что нужно прописать некую проверку есть ли такой URL и если его нет то выдавать 404.
кусок конфиг файла то что я пробывал сделать:

server
{
    listen localhost:80;
    server_name example.com;
    charset utf-8;
     location  / {
           root /var/www/html/;
           try_files $uri $uri/ /index.html;   \\редирект всех запросов на index.html
            index index.html;
                 location ~* !^(\/|css|balance|deposit|signup|profilelogin|settings|static|fonts|img|index\.html|favicon\.ico)/
              {
               return 404;
               break;
            }
      }
}

также пробывал сделать через if вместо второго location
проблема в том что отрабатывает только одно из условий.(( если работает проверка URL, то если обновить страницу выдает 404. если же работает правило из try_files то не работает проверка URL.
  • Вопрос задан
  • 174 просмотра
Решения вопроса 1
@Kazhikumarov Автор вопроса
Системный Администратор в ADAB Solutions
решилось вот так. вдруг кому полезно будет. спасибо доброму человеку с stackoverflow

location / {
    return 404;
}
location ~ ^/(signup|market|support|profie|login|settings|index\.html|static|fonts|img|$) {
    try_files $uri $uri/ /index.html;
}
location = /{
try_files $uri $uri/ /index.html;
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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