3

标题中提到了我的问题,但我会重申。我是 GAE 及其所有东西的新手。我的应用程序使用 PHP 和 Mysql。我有 mysql 在 Cloud Sql 中工作,我刚刚将我的应用程序部署到应用程序引擎。

什么工作:不需要参数的PHP脚本,即(FooBar.php)

什么不起作用:我需要传递参数的 PHP 脚本,即 (FooBar.php?foo=bar)

我相信解决方案是如何配置 app.yaml 文件。

再说一次,我会说 REGULAR PHP SCRIPTS EXECUTE。

我需要参数的地方是我唯一的问题。

这是我的 app.yaml 文件的示例

application: foo-bar-111
version: 1
runtime: php
api_version: 1

handlers:
- url: /(.+\.php)$
  script: \1

任何帮助将不胜感激!!!

4

1 回答 1

0

您复制到问题中的 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 在我之前的回答中发现了错误]

于 2014-12-28T07:00:51.477 回答