У меня есть веб-сайт, который также обслуживает запросы api к приложению в основном домене. Я хотел бы отправить все соответствующие запросы / api на поддомен api.
Например, мне нужно https://example.com/api + https://example.com/api/some_action + https://example.com/api/some_action?params1=somevalue¶ms2=value2 .... для перенаправления на ту же структуру URL, но только на поддомене.
Итак, для приведенного выше примера:
https://example.com/api -> https://api.example.com/api
https://example.com/api/some_action -> https://api.example.com/api/some_action
https://example.com/api/some_action?params1=somevalue¶ms2=value2 .... -> https://api.example.com/api/some_action?params1=somevalue¶ms2=value2 ....
Также для всех типов запросов (получение, публикация и т. Д.). До сих пор я пробовал это в директиве сервера для основного домена (в директиве сервера SSL 443)
location ~ /api(.*)$ {
return 301 https://api.example.com/api/$request_uri$is_args$args;
}
Результат, который я получаю при выполнении простого запроса GET на https://api.example.com/api/some_action?param1=value ... равно https://api.example.com//some_action без параметров и без api.
/api/api/
и удваивать аргументы, поскольку$request_uri
уже содержит как/api
, так и аргументы. - person Richard Smith   schedule 09.02.2019