1

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

AllowOverride All 和 Apache mod_rewrite 在服务器中启用。有没有人对这个问题有任何想法。我在这个错误中坐了 2 天..

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


}  

我正在使用 url site.com/API访问它,它会在实际情况下显示一个 XML。

编辑

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

我尝试了以下方法:

  1. 创建了一个导致 404 的新控制器。

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

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

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

4

1 回答 1

4

如果应用程序在 Windows 本地运行,但在运行 Linux 的测试服务器上无法运行,则可能是区分大小写的问题。检查文件夹的大小写,包括控制器文件夹和视图/脚本文件夹(都应该是小写)。

于 2013-02-15T09:07:30.463 回答