Google App Engine标准环境PHP网站子目录路由失败求助
解决GAE标准环境PHP 8.3子目录PHP文件路由问题
你的问题根源在于当前app.yaml的PHP文件handler规则未正确映射子目录下的脚本,导致请求子目录PHP文件时自动 fallback到主页index.php。只需调整配置规则,就能让GAE准确识别并执行所有子目录中的PHP文件,无需编写前端控制器。
修改后的app.yaml配置如下:
service: nameoftheapp runtime: php83 handlers: # Serve images as static resources. - url: /(.+\.(gif|png|jpg))$ static_files: \1 upload: .+\.(gif|png|jpg)$ # 处理所有层级子目录中的PHP文件 - url: /(.+)\.php$ static_files: \1.php upload: (.+)\.php$ script: auto # 兜底处理其他请求(保留现有主页逻辑) - url: /.* script: auto
关键调整说明:
- 针对PHP文件的handler新增
static_files和明确的upload规则,确保GAE能将请求路径(如/somefolder/somefile.php)准确映射到服务器上对应的实际文件路径somefolder/somefile.php。 - 正则表达式
/(.+)\.php$会匹配所有包含子目录的PHP文件请求,覆盖你所有嵌套子目录的场景。 - 保留
script: auto让GAE自动处理PHP脚本的执行逻辑,无需额外编写路由代码。
部署修改后的配置后,访问子目录下的PHP文件就能正常加载对应内容了。
内容的提问来源于stack exchange,提问作者Lennart Giaccotto
相关产品推荐
相关产品推荐

