Я не могу заставить его работать!
location ~ ^/(api) {
#api requests
include /etc/nginx/mime.types;
index index.php;
try_files $request_uri $request_uri/ /index.php?$query_string;
}
location / {
#angular app
try_files $uri /index.html?$query_string;
}
Я могу загрузить базовый api-путь, то есть https://test.com/api
и он возвращает ответ 404 json, как и ожидалось, поскольку доступ к корню api является незаконным.
однако, пытаясь запустить любой маршрут в api, например https://test.com/api/v1/authenticate
и он попадает в приложение переднего конца во втором блоке местоположения!
Ну, после некоторых экспериментов я определил, что наличие api в подкаталоге вызывало проблему. Я переместил api index.php
из /api/index.php
в корневую папку (/
) и переименовал ее api.php
то, изменив мою тонкую группу приложений с /v1
на /api/v1
следующая конфигурация nginx теперь работает правильно:
location ~ ^/api {
try_files $request_uri $request_uri/ /api.php?$query_string;
}
location / {
include /etc/nginx/mime.types;
try_files $uri /index.html?$query_string;
}