我正在使用Zend Server在Zend MVC中创建一个hello world项目。一些如何路线错误。我通过zend_tool zf.sh创建项目来创建项目,所以它创建了所有目录本身,并且我修改为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”时,
显示“消息:指定的无效控制器(约)”
请求参数:
阵列(
'controller'=&gt; '约',
'action'=&gt; '索引',
'module'=&gt; '默认',
)
我希望控制器能够成为索引和行动......我该如何解决...
我在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 :(得分:1)
localhost/index.php
应默认转到index
控制器和index
操作(index, index)
。localhost/index
也应该转到(index,index)
index.php/about
我希望转到(about,index)
,即about
控制器和index
操作,但我可能错了(我没有测试过)。 (index,about)
,请转到localhost/index/about
您似乎已正确定义了约动作public function aboutAction
,因此应该正常运行。
如果您希望能够访问localhost / about或localhost / about / index,则需要像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]
答案 1 :(得分:0)
我认为这正是错误信息所说的,即你需要一个你没有的about
控制器。在网址http://localhost/index.php/about
中,about
将是您需要建立的完全独立的控制器。