子目录页面出现 404 错误

子目录页面出现 404 错误

我在 Google 应用引擎上部署了我的网站,除非我尝试打开网站的子目录,否则它运行良好。例如,即使我已上传/部署目录,打开 example.com/dir 也会出现 404 错误。我的 app.yaml 如下:

runtime: php72


handlers:
- url: /
static_files: public/index.html
upload: public/index.html

- url: /
static_dir: public


# Serve images as static resources.
- url: /(.+\.(gif|png|jpg))$
static_files: \1
upload: .+\.(gif|png|jpg)$
application_readable: true

# Serve php scripts.
- url: /(.+\.php)$
script: \1

如果您需要任何其他详细信息,请告诉我。

答案1

我不知道这是否是将代码添加到 serverfault 时出现的复制粘贴错误,但您的 YAML 上的缩进不正确,这可能会导致此错误。应该是:

runtime: php72


handlers:
- url: /
  static_files: public/index.html
  upload: public/index.html

- url: /
  static_dir: public


# Serve images as static resources.
- url: /(.+\.(gif|png|jpg))$
  static_files: \1
  upload: .+\.(gif|png|jpg)$
  application_readable: true

# Serve php scripts.
- url: /(.+\.php)$
  script: \1

答案2

App Engine 标准环境中 PHPv7.2 运行时中“script”参数唯一可接受的值是“auto”,如此处所述 [1]。建议使用具有应用内路由的 Web 框架(如 Laravel、Symfony 或类似框架)在请求到达特定路由时执行脚本。

[1]https://cloud.google.com/appengine/docs/standard/php7/php-differences#migrating_your_appyaml_file

请记住,如果您使用的是 PHP 7.2 和 App Engine 标准环境,则此运行时处于测试阶段,并且此功能可能会以向后不兼容的方式更改,并且不受任何 SLA 或弃用政策的约束。

请尝试一下并告诉我结果。

[1]https://cloud.google.com/appengine/docs/standard/php7/config/appref

相关内容