将参数传递给app.yaml Google App Engine中的php

时间:2014-12-28 05:27:13

标签: php google-app-engine parameters app.yaml

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

什么工作:不需要参数的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

请帮助任何帮助!!!

1 个答案:

答案 0 :(得分:0)

您复制到问题中的app.yaml(假设我在评论中注明的引文并非真正在您的app.yaml文件中)对于带有和不带参数的网址看起来都很好。我们不清楚您接收的错误和/或您看到的意外行为。

要清楚,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在我之前的回答中发现错误]