@HerrNiemand

Rewrite в nginx?

У меня есть папки с json файлами. Структура
data
| ---- test
       | ---- test.json

| ---- data
       | ---- data.json

| ---- datasetname
       | ---- dataset.json


Я хотел был сделать чтобы при обращении например example.com/data/test/ nginx отдавал example.com/data/test/test.json

Я пробовал
rewrite $uri $uri/$uri\.json";
и много других методов.

К сожалению я проигрался два дня, и так и не понял как это решить.

П.С. IRTFM.
  • Вопрос задан
  • 360 просмотров
Решения вопроса 1
@HerrNiemand Автор вопроса
Вот что я сделал.

Я разбил $uri на отдельные слова regex'ом.

rewrite (\w+) $uri break;

То есть из /data/countries получаем ['data', 'countries']

За тем я просто переадресовал на $uri, и сделал try_files $uri$2.json $uri/$2.json =404;, что собственно берет второй аргумент($2), и добавляет к $uri, в конце добавляет .json и пробует файл. Если найдет, отдает, если нет, 404.

Весь код:

location /data {
        rewrite (\w+) $uri break;
        try_files $uri$2.json $uri/$2.json =404;
}


Всем спасибо за советы. *)
Отдельное спасибо господину Алексей POS_troi за возможность по-тыкать. ГЫ ГЫ ГЫ
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
POS_troi
@POS_troi
СадоМазо Админ, флудер, троль.
В лоб :)
location /data/test/ {
    index test.json;
}
Ответ написан
Ваш ответ на вопрос

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

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