Kohana 2.3.4(2.4)のルーティングと「インデックス」コントローラーの問題
質問
私が持っているのは、Apache 2.2.9を搭載したDebianで「index」という名前のコントローラーであるKohana 2.3.4の新しいクリーンコピー(2.4 RC1も試しました)です。
http:// localhost / kohana / index / index のようなアドレスを入力すると、コントローラが必要です'index'、実行されるアクション 'index'。 Windows localhostで動作し、共有ホスティングで動作します。しかし、私のDebianサーバーにはありません。
デバッグして、$ _ SERVER ['PATH_INFO']が正しくないことがわかりました。 URIの最初の「インデックス」が省略されているため、「インデックス/インデックス/インデックス」に移動して「インデックス/インデックス」に移動できます。それが私が修正したいものです。
これを解決する方法を知っている人はいますか?
解決 2
それはmod_negotitaionであることが判明しました。いまいましいmodは私の/ index / indexを/index.php/indexに書き換えます。
したがって、この問題が発生した場合は、mod_negotiationを無効にして楽しい時間を過ごしてください
他のヒント
実際には、Kohanaではなく、.htaccessファイルまたはApache configで発生していると思います。まず、Kohanaに付属するexample.htaccessファイルの名前が.htaccessに変更されていることを確認してください。Apacheを再起動する必要がある場合があります。
.htaccessを使用してパスのindex.php部分を非表示にしている場合、RewriteBase設定が何であるかを確認してください:
RewriteBase /kohana/
Webサーバーのルートにインストールした場合(本番環境、またはlocalhost用の別のポートを使用)、次のように変更する必要があります。
RewriteBase /
これは、新しいサイトや開発環境をセットアップする際の、私個人の最も一般的なエラーです。これは、CodeIgniterおよびその他の関連するPHPフレームワークにも当てはまります。
DebianサーバーにインストールしたApacheには実際にmod_rewriteがありますか?それを確認すると良いでしょう。 ここに1つの方法があります。
KohanaまたはApacheの障害であるかどうかを確認するためのさらなる診断には、パスのindex.php部分の追加が含まれます。あなたの場合、 http://localhost/kohana/index.php/index を試してください。最後に、コントローラーの「インデックス」の命名に関する上記のsarfrazに同意する必要があります。トラブルを懇願しています。私自身の慣例では、「ホーム」と呼んでいます。デフォルトルートを適宜編集します。