标题中提到了我的问题,但我会重申。我是 GAE 及其所有东西的新手。我的应用程序使用 PHP 和 Mysql。我有 mysql 在 Cloud Sql 中工作,我刚刚将我的应用程序部署到应用程序引擎。
什么起作用:不需要参数的 PHP 脚本,即 (FooBar.php)
什么不起作用:我需要传递参数的 PHP 脚本,即 (FooBar.php?foo=bar)
我相信解决方案是如何配置 app.yaml 文件。
我会再次说常规 PHP 脚本执行。
我需要参数的地方是我唯一的问题。
这是我的 app.yaml 文件的示例
application: foo-bar-111
version: 1
runtime: php
api_version: 1
handlers:
- url: /(.+\.php)$
script: \1
如有任何帮助,我们将不胜感激!!!
最佳答案
您复制到问题中的 app.yaml(假设我在评论中提到的引号实际上并不在您的 app.yaml 文件中)对于带参数和不带参数的 URL 看起来都不错。目前尚不清楚您收到了什么错误和/或您看到了什么意外行为。
明确地说,app.yaml 文件将传入请求路由到您的 php 脚本。您问题中的 app.yaml 文件应该运行 FooBar.php 脚本以对两者进行 URL 命中
/FooBar.php
和
/FooBar.php?foo=bar
PHP 脚本本身应该访问参数,如果它存在,用
$_GET["foo"]
这是您所期望的,还是您想根据不同的查询字符串参数路由到不同的脚本?如果是后者,我认为这是不可能的——您必须在脚本本身中处理它。
此外,您引用的 URL 是否仅使用查询字符串?绝对记住
/FooBar.php/foo-bar
或类似的东西,将不会与该 yaml 条目匹配。如果路径中可能有尾随字符,请删除尾随“$”并改为包含“.*”,例如:
- url: /(.+\.php).*
这将匹配所有示例,并将它们全部发送到您的 FooBar.php 脚本。
[编辑之前——感谢 Stuart 发现了我之前回答中的错误]
关于php - 在 app.yaml Google App Engine 中将参数传递给 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27673901/