2011-06-28 7 views
1

私はZend ServerでZend MVCでhello worldプロジェクトを作成しています。どのようにルーティングが間違っているいくつか。私はそれがすべてのディレクトリ自体を作成するようにZend_Tool zf.shによるプロジェクトは、プロジェクトを作成して作成し、zend frameworkシンプルアクションの問題

<?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 
    } 


} 


とき、私..私は以下のようないくつかのアクションを試してindexControllerに変更され、他のすべてのファイルが同じことを連想させます"http://localhost/index.php"と入力すると、indexAction()の正しい情報が表示されます。
「http:// localhost/index」と入力するとページが見つかりません
「http://localhost/index.php/about」と入力した場合、
「メッセージ:無効なコントローラが指定されています(約)」 リクエストパラメータ:

アレイ( 'コントローラ' => '約'、
'作用' => 'インデックス'、 'モジュール' => 'デフォルト'、 )

私はコントローラーがインデックスとなることを期待しています。どのように私はそれを修正することができます...

私はこれを私の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> 

お時間をいただきありがとうございます。

答えて

0

私はそれはあなたが持っていないaboutのコントローラを必要としているというエラーメッセージが表示されていると思います。 http://localhost/index.php/aboutのURLには、aboutが確立する必要のある完全に別のコントローラになります。

+0

が、私は、サーバーがアクションとしておよそコントローラとしてインデックスを解釈期待:

- - EDIT また、必ずあなたの.htaccessファイルは次のように最低でも見えるように。 – Nissan911

+0

@ Nissan911と私はあなたがそれを考える理由を理解しています。しかし、Zendは上記の形式の 'about 'コントローラを探しています。 – Nic

1
  • localhost/index.phpindexコントローラと、デフォルト(index, index)によってindexアクションに行く必要があります。
  • localhost/indexも私が期待する(index,index)
  • index.php/aboutに行くべき(about,index)に行く、それはaboutコントローラとindexアクションですが、私は(私はこれをテストしていない)間違っている可能性があります。
  • あなたが(index,about)に行きたい場合は、あなたはそれが正常に動作するはずですので、正しくは約アクションpublic function aboutActionが定義されているように見えるlocalhost/index/about

に行くだろう。 localhost/aboutまたはlocalhost/about/indexに移動したい場合は、IndexControllerのようにclass AboutController extends Zend_Controller_Actionのようなaboutコントローラを定義する必要があります。

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] 
+0

私はmetioned。 localhost/index - >ページが見つかりません。とlocalhost/index/about serverは全くコントローラではないと解釈します。 – Nissan911

+0

@ Nissan911はあなたの.htaccessが正しく設定されていますか? – Nic

+0

あなたはどのWebサーバーを使用していますか? Apacheの場合、.htaccessが正しく設定されていますか? – ashurexm

関連する問題