Php Zend指数控制器问题

Php Zend指数控制器问题,php,zend-framework,controller,Php,Zend Framework,Controller,我正在尝试使用Zend framework创建应用程序,以便 我已经用zf工具创建了基本的应用程序结构 现在,当我尝试使用http://localhost/zendApp/public/index.php 加载默认的“欢迎使用Zend Framework!”页面 但是当我输入http://localhost/zendApp/public/或http://localhost/zendApp/public/index未调用索引控制器,但 相反,我收到了错误消息: *指定的控制器无效(zendApp)

我正在尝试使用Zend framework创建应用程序,以便 我已经用zf工具创建了基本的应用程序结构

现在,当我尝试使用http://localhost/zendApp/public/index.php 加载默认的“欢迎使用Zend Framework!”页面

但是当我输入http://localhost/zendApp/public/http://localhost/zendApp/public/index未调用索引控制器,但 相反,我收到了错误消息:

*指定的控制器无效(zendApp)

  • 如您所见,它正在尝试以应用程序的名称启动控制器。 另外,如果我在index controller中创建其他操作并使用http://localhost/zendApp/public/index/newaction 我得到了同样的错误:

    排列( “控制器”=>“zendApp”, “操作”=>“公共”, 'index'=>'newaction', “模块”=>“默认值”, )

你能帮我理解为什么索引控制器没有被调用吗?
谢谢。

您控制器的url不包括公用文件夹。例如,用户控制器将是 不是,索引控制器应该在或上工作

您的url重新布线器(例如mod_rewrite)应设置为将所有url重新写入/public/index.php,而不是静态文件,例如图像、css js等。请参阅

您是否有此设置:
“如果您要部署到一个“用户”站点(例如),那么您的.htaccess文件中需要一个RewriteBase/~rob/zf tutorial/public/”来自

谢谢您的回答,我理解您的意思。但我认为zend的默认设置是完全通过公用文件夹访问控制器——开发人员猜测,在web服务器上部署时,您将只将index.php放在公用文件夹中,而将应用程序的其余部分放在公用文件夹之外。但在为我进行本地开发时,这并不方便,所以我将使用您所说的。我在阅读本文时,首先找到了解决问题的方法。我似乎忽略了这一点:“C:\xampp\php\php.ini行,uncomment extension=php_pdo.dll extension=php_pdo_sqlite.dll”非常确定Zend的默认结构是将控制器放在应用程序文件夹中,在public的外部,public仅用于资产和设置环境并调用引导的index.php。
array (
  'controller' => 'zendApp',
  'action' => 'public',
  'module' => 'default',
)