Задать вопрос

Как в config nginx в секции location по регулярке проверить существование папки?

Как в config nginx в секции location по регулярке проверить существование папки? Это возможно ?)))
Вся суть если есть папка на сайте отрабатывает /category.php если нет папки то =404.
Сам URL категории web.ru/dir/1 , web.ru/dir/2 .... web.ru/dir/19
location ~ "^/([a-z-]+)/([1]\d|[1-9])$" {
                try_files $uri $uri/  /category.php; # category 1-19      
    }

код срабатывает если даже папки нету
  • Вопрос задан
  • 144 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
@dodo512
В $uri будет весь путь /dir/1, а в try_files нужно передать только часть /dir/.
Для этого в шаблоне ставим (/[a-z-]+/) и в $1 получаем нужное значение.
После try_files если папка существует работает index и там в конце списка может стоять файл с абсолютным путём.
location ~ "^(/[a-z-]+/)(1\d|[1-9])$" {
    index /category.php;
    try_files $1/ =404;
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

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

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