1

我刚刚将我的 CodeIgniter PHP AppEngine 项目部署到云中,我遇到了一个问题,当我尝试访问我的一个 URL 时,它会导致重定向循环。我尝试过使用不同的浏览器和隐身模式,但它们仍然会导致同样的问题。

我在 app.yaml 中设置了一个 URL,它确实有效。

- url: /tos
  script: tos.php

那么/tos就可以了。

但是对于我的常规 CodeIngiter index.php 程序,它会导致重定向循环,并且在地址栏中会出现一些长 URL。这是相关的 app.yaml:

- url: .*
  script: index.php

http://even-crossing-385.appspot.com/base/data/home/apps/s~even-crossing-385/1.371577713118072254/login

在我的本地开发盒上运行良好。

我在这里缺少某种配置吗?

谢谢!

4

4 回答 4

1

我有同样的问题,在我的本地计算机上使用 WAMP 可以正常工作,但是使用谷歌应用引擎它只显示默认控制器,我认为问题是文件 app.yaml 但我无法正常设置重定向规则

于 2013-11-23T22:11:58.250 回答
0

我无法让它工作,但我最终发现了这个在本地和 AppEngine 上都有效的 CodeIgniter hack 。所以我使用它并在那里复制了我的控制器、模型和视图,然后一切都找到了。我的猜测是,有某种基础环境变量在投入生产时不起作用。

于 2013-11-25T03:54:43.637 回答
0

我有相反的效果。它不能在本地使用 App Engine SDK,但是当我将它部署到 GAE 时,它运行良好。该线程中描述的“CodeIgniter hack”对我不起作用。我终于通过修改 application/config/config.php 中的 config.php 文件让它工作了

我注释掉了 base_url、index_page 和 uri_protocol 的现有配置设置,并将其替换为以下内容:

if(isset($_SERVER['SERVER_SOFTWARE']) && strpos($_SERVER['SERVER_SOFTWARE'],'Google App Engine') !== false)
{
//Production settings go here
$config['base_url'] = '';
$config['index_page'] = '';
$config['uri_protocol'] = 'AUTO';
}
else
{
//Local Development settings go here (change "13080" to whatever number the localhost SDK generates for you )
$config['base_url'] = 'http://localhost:13080/';
$config['index_page'] = 'index.php';
$config['uri_protocol'] = 'PATH_INFO';
}

老实说,我不知道为什么这样做有效,但确实有效。

于 2014-06-16T18:14:45.703 回答
0
- url: /
  script: ci-googleappengine-test/index.php

- url: /(.+)
  script: ci-googleappengine-test/index.php

它会工作,对我有用。ci-googleappengine-test = 文件夹名称

于 2013-12-08T10:27:44.840 回答