配置app.yaml实现GAE标准环境中index.php跳转至其他PHP文件
你的问题确实由app.yaml配置错误导致,核心问题是缺少对应php脚本的路由匹配规则,且存在无效重复配置。
现有配置的问题
- 没有匹配
/news.php、/detail.php访问路径的路由规则,所有未匹配到静态资源、thanks.html的请求最后都会命中末尾的.*通用规则,默认路由到index.php - 已有的两条
/index/.*路由规则完全重复,路径匹配逻辑和实际跳转需求不符,且GAE的handler规则按顺序匹配,只有第一条会生效,第二条属于完全无效的配置
修正后的app.yaml配置
runtime: php72 handlers: - url: /(.*\.(gif|png|jpg|mov))$ static_files: \1 upload: .+\.(gif|png|jpg|mov)$ - url: /css static_dir: css - url: /js static_dir: js - url: /thanks.html static_files: thanks.html upload: thanks.html - url: /news.php script: news.php - url: /detail.php script: detail.php - url: .* script: auto env_variables: xxxxxxxxxxxxxxxx
修改说明
- 新增
/news.php和/detail.php的精准匹配规则,访问对应路径时会直接路由到对应脚本,不会走到最后的通用规则 - 删除了原有的两条重复且不匹配实际访问路径的
/index/.*无效规则 - 原有静态资源、感谢页、首页的路由逻辑保持不变,不影响现有正常功能
如果你的跳转路径是不带.php后缀的(比如/news、/detail),只需要把对应规则的url参数改成你实际使用的跳转路径即可。
内容的提问来源于stack exchange,提问作者okkotsu
相关产品推荐
相关产品推荐

