Zend框架:仅使用索引控制器“找不到url”,仅限小写

时间:2012-02-06 14:16:14

标签: zend-framework controller indexing http-status-code-404 uppercase

这是我的问题:

我有一个在aruba / linux上运行的工作zend应用程序。 它似乎运作良好。

我有一些控制器:索引,用户,视频......

如果我键入“http://www.foo.com/public/”,我可以访问我的索引控制器和索引操作。 如果我输入“http://www.foo.com/public/user/register”,我可以联系我的用户控制器并注册操作。

如果我输入“http://www.foo.com/public/index/index”,则找不到服务器返回网址:(

但最奇怪的是,如果我输入“http://www.foo.com/public/Index/index”(注意大写I)它就可以了。

我尝试解释,但我没有找到:(

你能帮帮我吗?

先谢谢,加布里埃尔。

PS:在我的计算机上的语言环境中运行良好


更新

我今天下午没有注意到的一种行为:如果我调用一个不存在的控制器,则zend会显示自定义错误页面,并且写入没有指定的控制器。使用索引控制器,我获得了404:url not found ...

我绝对不知道该怎么做...请帮助我!!


RE-UPDATE

我已将默认控制器从'index'更改为'foo',我已正确重命名所有文件,类和文件夹,并且应用程序运行良好,没有这个愚蠢的错误......

似乎'索引'这个词会产生某种错误。 这是一种神奇的......

5 个答案:

答案 0 :(得分:4)

我遇到了同样的问题。

问题出在我的虚拟主机设置中。 我的虚拟主机目录中有以下设置:

<Directory /home/koen/zend/ZendCMS/public>
            Options Indexes FollowSymLinks MultiViews ExecCGI
            AllowOverride All
            Order Deny,Allow
            Allow from all
</Directory>

当我在MultiViews前放一个破折号并修复了问题。

像这样:

<Directory /home/koen/zend/ZendCMS/public>
            Options Indexes FollowSymLinks -MultiViews ExecCGI
            AllowOverride All
            Order Deny,Allow
            Allow from all
</Directory>

希望有所帮助

答案 1 :(得分:3)

尝试将索引网址更改为索引/索引而不是索引/索引 默认情况下,apache2在某些配置中选择索引作为文档根目录

中的默认索引。*文件

答案 2 :(得分:2)

当我从Apache 2.2升级到2.4时遇到了同样的问题。我基本上将httpd-vhosts.php文件从一个版本复制到下一个版本(在升级指南中列出了更改后)。我的网站在/ index之外的每个页面都运行良好,但如果我将其关闭,主页会加载。

ArneRie在原始回复主题中提供的答案是为我解决的问题。从conf文件中删除MultiView可以解决问题。

答案 3 :(得分:0)

我将“/ index”更改为“/ Index”并且工作正常

答案 4 :(得分:0)

我今天遇到了类似问题。

所有其他控制器都可以工作,也可以像这样路由到索引控制器:

    $router->addRoute("object", 
        new Zend_Controller_Router_Route_Regex("object/(\d+)",
            array(
                "controller" => "index",
                "action"     => "object"
            )
        )
    );

也有效。

但是/ index / object显示404 file not found错误。

必须是vhost设置中的选项。我完全删除了它们,这在我的案例中有所帮助。

P.S。:您也可以将您的vhost定向到公共文件夹,以便您的链接看起来像:http://www.foo.com/user/register而不是http://www.foo.com/public/user/register