1

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

谢谢!

4

1 回答 1

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 都可以。

于 2018-01-16T23:36:54.710 回答