You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Cloud App Engine PHP项目子目录访问404问题求助

解决Google Cloud App Engine PHP项目子目录404问题

嘿,我来帮你搞定这个子目录访问的404问题!核心原因是你当前的app.yaml配置没有正确处理子目录下的PHP动态脚本请求——你用了static_dir来处理路径,但这只适用于静态文件,PHP脚本需要让App Engine的PHP运行时来解析执行,而且规则要覆盖到所有子目录的情况。

修正后的app.yaml配置

直接替换你的handlers部分,以下是适配子目录PHP访问的完整配置:

runtime: php55
api_version: 1

handlers:
  # 匹配所有目录(包括子目录)下的PHP文件,交给PHP运行时处理
  - url: /(.+\.php)$
    script: \1

  # 处理根目录默认访问,指向根目录的index.php
  - url: /
    script: index.php

  # 可选:如果forums目录有静态资源(如css/js/图片),添加这个规则确保能正常访问
  - url: /forums/(.*\.(css|js|png|jpg|gif))$
    static_files: forums/\1
    upload: forums/(.*\.(css|js|png|jpg|gif))$

配置说明

  • 第一个handler:用正则表达式/(.+\.php)$匹配所有以.php结尾的URL(不管在哪个子目录),script: \1表示把请求路由到捕获到的对应PHP文件(比如/forums/whatever.php会指向项目里的forums/whatever.php文件)。
  • 第二个handler:处理根目录的默认访问请求,直接指向根目录的index.php。
  • 第三个handler(可选):专门处理forums目录下的静态资源,避免这些文件被当成PHP脚本处理,确保CSS、JS、图片等能正常加载。

额外注意事项

  1. 确认你的项目目录结构正确:主目录下确实存在forums文件夹,且里面有whatever.php文件。
  2. 修改配置后,重新部署项目:执行gcloud app deploy命令,确保新的配置生效。
  3. 如果还有其他子目录的PHP文件,第一个handler已经全覆盖了,不需要额外添加规则,除非有特殊的路由需求。

这样配置后,访问https://example.com/forums/whatever.php就不会再返回Nginx 404错误,而是正常执行对应的PHP脚本啦!

内容的提问来源于stack exchange,提问作者PLAINS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:33:47