PHP App Engine Flex服务SPA和API

时间:2018-01-16 14:25:00

标签: google-app-engine app-engine-flexible google-app-engine-php

我的目标是在同一网站上提供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

谢谢!

1 个答案:

答案 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都可以使用。