我无法让它发挥作用!
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
,并最终传递到第二个位置块中的前端应用程序!
答案 0 :(得分:0)
好吧,经过一些实验,我确定在子目录中使用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;
}