0

私は数日前にコハナの学習を始めました.Zend Frameworkを使用すると、いくつかの問題が発生するまで、学習経験は速いようです.

まず、Windows 7でプロジェクトを開始しました(Linux ubuntu 12.04でのデュアルブート)。剣道 UI を使用して管理アプリにページを追加する前に、すべてのリンクに問題がないことはわかっていました。サブフォルダーのコントローラーを処理し、フォームのクエリ文字列で URL を処理するためのルートをいくつか追加しました?bla=dkll&second=lkdjf(剣道グリッドで使用され、ユーザーのグリッドとの対話に基づいて不明な数のパラメーターを送信します)。

最初の問題:Windowsでは、ルート以外のURLにアクセスします(/localhost/admin/:管理者はhtdocsの私のフォルダーです)。

ERROR: HTTP_Exception_404 [ 404 ]: The requested URL / was not found on this server:

83 try
84 {
85      if ( ! class_exists($prefix.$controller))
86      {
87          throw new HTTP_Exception_404('The requested URL :uri was not found on this server.',
88              array(':uri' => $request->uri()));
89      }
90
91      // Load the controller using reflection
92     $class = new ReflectionClass($prefix.$controller);

2番目の問題:ubuntuでは、同じ最初の問題があるだけでなく、他のurlsようなものにもヒットできませんlocalhost/admin/useraccess/login

質問:

最初の問題に関連する2番目の問題です(明らかに「/」が見つからないことは別として)ubuntu mod_rewriteで有効にしましたが、kohanaインストールページはすべて緑色です。

ubuntuではないWindows php(xampp)で有効になっている、有効にするのを忘れた他の設定はありますか?

私の .htaccess/logs/boostrap はここにあります

これを読んで助けてくれてありがとう

4

3 に答える 3

2

アプリケーションのルートフォルダは「admin」だと思います。bootstrap.phpには、次のものが必要です。

Kohana::init(array(
    'base_url'      => '/admin',
    'index_file'    => FALSE,
));

また、bootstrap.phpでは、デフォルトルートは最後のルートである必要があります。

Route::set('default', '(<controller>(/<action>(/<id>)))')
    ->defaults(array(
        'controller' => 'index',
        'action'     => 'index',
    ));

追加する他のルートは、デフォルトルートの上に配置する必要があります。

于 2012-07-19T11:00:01.270 に答える
2

私はあなたと同じ問題を抱えています、私のコハナは私のウィンドウズマシンでうまく動いています。しかし、Ubuntuに移行すると、ルーティングに問題が発生します。これは私の悪いことです、私は私のapacheconfを編集するのを忘れました。/ etc / apache2 / sites-enabled/000-defaultにあるconfファイルを調べることができます

   
ディレクトリ/var/ www />
   オプションインデックスFollowSymLinksMultiViews
   AllowOverrideなし
   注文許可、拒否
   すべてから許可する
/ディレクトリ>

「AllowOverrideNone」を「AllowOverrideAll」に編集し、ApacheWebサーバーを再起動します。

魔法のように動作します!!

于 2012-09-18T14:10:25.883 に答える
1

Digby のメモに追加するには:すべてのクラス ファイル名とディレクトリ名は小文字です。

私が気づいた小さなことがいくつかありますが、あなたが抱えている問題を説明できるものは何もありません:

  • クエリ文字列は、アクションへのルーティングには使用しないでください。コントローラーで $this->request->query() を使用して、GET 値を使用します。
  • スラッシュは URI の先頭と末尾から削除されるため、コメント アウトされた「def」ルートのオプションの / は役に立ちません。
  • kendogrid ルートを 2 回目に定義すると、古いルートが上書きされます。それらは同じであるため、実際には問題ではありません。削除しないでください。

どのコントローラーもルーティングされると予想されますか? 現在は Controller_ のはずです...うーん...私は私の小さな目でタイプミスをスパイします! 「購読者」ではなく「購読者」。したがって、現在は Controller_Subcribers::index() にルーティングされます。

Controller_Subscribers::index() の代わりに Controller_Useraccess::index() が必要な場合 (タイプミスを修正すると仮定)、「kendogrid」と「default」の両方が空の URI に一致するため、最初の kendogrid ルートを削除します。

PS。3.2を使用していると仮定しています

于 2012-07-24T15:00:15.480 に答える