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

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

标题中提到了我的问题,但我会重申。我是 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/

相关文章:

php - Yii - 设置 Active Record 动态表名时出错

php - Laravel Eloquent 操作集合

php - 从列表中添加/删除元素,然后将更改保存到 MySQL

java - 谷歌应用引擎错误:Unable to compile class for JSP

jsf - 如何将参数从模板客户端传递给主模板,然后在复合属性中使用它?

php - ZendFramework 2 - 表单 - 具有多个无效电子邮件地址的电子邮件字段导致 "Array to string conversion"

python - 不是有效的选择 : Can't select ReferenceProperty value at SelectField wtform

python - 如何让AppEngine在同一页面显示错误?

javascript - 如何在用户身份验证后打开新窗口并提取参数

c++ - 在 C++ 中将数组作为函数参数传递