1

CodeIgniter PHP AppEngine プロジェクトをクラウドにデプロイしたところ、URL の 1 つにアクセスしようとするとリダイレクト ループが発生するという問題が発生しています。さまざまなブラウザーとシークレット モードを使用してみましたが、それでも同じ問題が発生します。

app.yaml に 1 つの 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を搭載したローカルコンピューターでは正常に動作しますが、Googleアプリエンジンを使用するとデフォルトのコントローラーのみが表示されます.問題はapp.yamlファイルにあると思いますが、リダイレクトルールをうまく設定できません

于 2013-11-23T22:11:58.250 に答える
0

これを機能させることはできませんでしたが、最終的にローカルと AppEngine の両方で機能するCodeIgniter のハックを見つけました。それで私はそれを使用して、そこにコントローラー、モデル、ビューをコピーしたところ、すべてが見つかりました。私の推測では、本番環境に入ったときに機能しない、何らかの基礎となる環境変数があると思います。

于 2013-11-25T03:54:43.637 に答える
0

私は逆効果でした。App Engine SDK ではローカルでは動作しませんでしたが、GAE にデプロイすると完全に動作しました。このスレッドで説明されている「CodeIgniter のハック」は、私にはうまくいきませんでした。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 に答える