新控制器中的Zend Framework 404错误问题

时间:2013-02-14 17:47:06

标签: php zend-framework controller http-status-code-404

我是ZF的新手,我正在开发一个已经构建的应用程序。我的任务是在应用程序中创建Web服务。我已在本地设置应用程序并且其工作正常。所以我添加了一个新的控制器并且可以在localhost中访问,但是当我尝试在服务器中访问它时,它会导致404错误,但是可以完美地访问其他控制器。

在服务器中启用了AllowOverride All和Apache mod_rewrite。有没有人知道这个问题。我和这个错误坐了两天..

    <VirtualHost *:80>
          DocumentRoot /path/to/site/public
          ServerName sitename.com
          ServerAlias www.sitename.com
       <Directory /path/to/site/public>
          AllowOverride All
       </Directory>
    </VirtualHost>

控制器代码:

class APIController extends Zend_Controller_Action
{

    public function init()
    {
        /* Initialize action controller here */

    }

    public function indexAction()
    {

        // Setup REST server
        $server = new Zend_Rest_Server();
    $server->setClass('APIHandlerClass');
    $server->handle();
    exit;
    }


}  

我正在使用网址 site.com/API 访问它。它会在实际情况下显示XML。

修改

我已经在本地linux系统中设置了应用程序,我发现问题与linux有关。

我尝试了以下内容:

  1. 创建了一个新的控制器,结果为404。

  2. 复制现有控制器并重命名原始控制器的名称。然后我更改了复制的控制器中的代码。我访问了我的控制器,它工作正常!

  3. 复制现有控制器并重命名复制的控制器。我用新名称调用了复制的控制器,显示404错误。

  4. 我的问题是我是否需要在任何地方指定新的控制器名称!?我没有找到任何关于此的文档,我甚至为控制器创建了视图文件。

1 个答案:

答案 0 :(得分:4)

如果应用程序在Windows中本地运行但在运行Linux的测试服务器上不起作用,则可能是区分大小写的问题。检查文件夹的大小写,包括controllers文件夹和views / scripts文件夹(两者都应为小写)。