Nginx переписать в папку API - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть URL-адрес, относящийся к каталогу API, я пытаюсь использовать регулярное выражение для направления его в правильный файл

Например, запрос к API будет выглядеть следующим образом:

www.domain.com/api/v1/objects/22&id=123&key=key123

Что будет сопоставляться с:

www.domain.com/api/v1/index.php?controller=objects&q=22&id=123&key=key123

или

www.domain.com/api/v2/objects/22/edit&id=123&key=key123

Что будетсопоставить с:

www.domain.com/api/v2/index.php?controller=objects&q=22/edit&id=123&key=key123

Итак, с нарушением правила :

www.domain.com/api/{version}/{controller}{query}&id=var&key=var2 сопоставляется с www.domain.com/api/{version}/index.php&controller={controller}&id=var&key=var2

Что я пробовал:

location /api/ {            
    try_files @api;
}
location @api {
    rewrite ^(/[^/]+)/(/[^/]+)/(.*)$ /api/$1/index.php?controller=$2&q=$3 last;
}
...