1

Zend Server を使用して Zend MVC で Hello World プロジェクトを作成しています。ルーティングがどのように間違っているか。私は zend_tool zf.sh create project でプロジェクトを作成するので、それはすべてのディレクトリ自体を作成し、以下のようないくつかのアクションを試すために indexController に変更し、他のすべてのファイルは同じことを思い出させます..

<?php

class IndexController extends Zend_Controller_Action
{

    public function init()
    {
        /* Initialize action controller here */
    $this->_helper->viewRenderer->setNoRender();
    }

    public function indexAction()
    {
        // action body
    $this->getResponse()->appendBody('hello from about Action');
    }

    public function aboutAction()
    {
    $this->getResponse()->appendBody('hello from about Action');
        // action body
    }


}


「http://localhost/index.php」と入力すると、indexAction(); からの正しい情報が表示されます。 「http://localhost/index」と入力すると、「http://localhost/index.php/about」と入力すると
ページが見つからないと表示され 、 「メッセージ: 無効なコントローラーが指定されました (about)」と表示されます。

配列 ( 'controller' => 'about',
'action' => 'index', 'module' => 'default', )

私はコントローラーがインデックスであり、アクションが約であることを期待しています..どうすれば修正できますか...

私はこれを私のApache設定に持っています。この設定が間違っている可能性があると思いますが、どこにあるのかわかりません。

<VirtualHost *:80>
#DocumentRoot "/usr/local/zend/apache2/htdocs"
DocumentRoot /home/testuser/projects/helloworldproject/public
<Directory "/home/testuser/projects/helloworldproject/public/">
    SetEnv APPLICATION_ENV "development"
    Order allow,deny
    Allow from All
</Directory>

御時間ありがとうございます。

4

2 に答える 2

1
  • localhost/index.phpindexデフォルトでは、コントローラーとindexアクションに移動する必要があります(index, index)
  • localhost/indexまた行く必要があります(index,index)
  • index.php/aboutに行くことを期待します(about,index)、それはaboutコントローラーとindexアクションですが、私は間違っている可能性があります(私はこれをテストしませんでした)。
  • あなたが行きたいなら(index,about)あなたは行くでしょうlocalhost/index/about

aboutアクションが正しく定義されているように見えるpublic function aboutActionので、正しく機能するはずです。localhost/aboutまたはlocalhost/about / indexに移動できるようにする場合は、の場合と同様にaboutコントローラーを定義する必要がありclass AboutController extends Zend_Controller_ActionますIndexController

-編集- また、.htaccessが少なくとも次のようになっていることを確認します。

DirectoryIndex index.php

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /index.php [NC,L]
于 2011-06-28T02:50:06.717 に答える
0

まさにエラーメッセージが言っていると思いますabout。それは、持っていないコントローラーが必要だということです。urlhttp://localhost/index.php/aboutでは、about確立する必要がある完全に別のコントローラーになります。

于 2011-06-28T02:46:03.083 に答える