我的目标是在同一网站上提供SPA和PHP API。我希望能够在mywebsite.com上浏览网站,并在mywebsite.com/api /上请求api电话。
我的目录结构是:
public
|
+-- index.html
+-- api
|
index.php
我的app.yaml:
runtime: php
env: flex
runtime_config:
document_root: public
导航到mywebsite.com会产生404,因为public / index.php不存在。
所以我尝试了这个app.yaml:
runtime: php
env: flex
runtime_config:
document_root: public
front_controller_file: index.html
我可以正常访问mywebsite.com,因为index.html是默认文件,但是api / index.php仍然是404.
在App Engine php flex上是否可以这样?我已阅读文档 - https://cloud.google.com/appengine/docs/flexible/php/configuring-your-app-with-app-yaml
谢谢!
答案 0 :(得分:2)
删除front_controller_file
中的runtime_config
。
使用以下内容创建名为nginx-app.conf
的文件:
location / {
try_files $uri $uri/ /index.html?$args;
}
location /api {
try_files $uri /api/index.php$is_args$args;
}
然后重新部署。两个URL都可以使用。