3

这是我的问题:Zend框架:“找不到网址”只能用指数控制器,只有小写

我已经在阿鲁巴/ Linux上运行的工作Zend的应用程序。 它似乎运作良好。

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

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

如果键入“http://www.foo.com/public/index/index”找不到服务器返回URL :(

但最奇怪的是,如果我输入“http:/ /www.foo.com/public/Index/index”(支付大写我的关注),它的工作原理。

我试图解释,但我不觉得:(

你能帮助我

在此先感谢,Gabriele。

PS:在我的电脑上现场效果很好


UPDATE

,我没有注意到今天下午一个问题:如果我叫控制器不存在的Zend显示自定义错误写入的页面没有指定的控制器。与索引控制器我取而代之的404:URL找不到...

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


重新更新

我已经改变了从“指标”到“富”默认的控制器,我已经改名为所有文件,类和文件夹的正确和应用效果很好,如果没有这个愚蠢的错误...

看来,“指数”二字产生某种错误的.. 这是一种魔法......

+0

本地=窗口?如果是,请检查您的控制器的名称。 IndexController.php /和类:IndexController扩展.. – opHASnoNAME 2012-02-06 17:20:12

+0

对不起,如果我没有写:我在apache服务器上的mac!所以它就像在linux上一样......名字和你写的一样! – user1192448 2012-02-06 21:18:39

+0

有没有在你的错误日志? – opHASnoNAME 2012-02-07 05:03:05

回答

3

尝试索引网址更改为索引/索引,而不是指数/指数默认在s中为 apache2青梅配置挑选指数为默认的指数。*在文档根

0

可用的文件我改“/指数”为“/指数”和它的工作

+0

你能解释一下吗?问题的原因是什么,严格区分大小写的目录? – greedybuddha 2013-05-05 15:15:09

4

我有同样的问题。

问题出在我的虚拟主机设置。

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

当我把一个破折号多视图的前面,并且解决了这一问题: 我在我的虚拟主机目录有以下设置。

像这样:

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

希望帮助

+0

非常感谢!我会尝试 – user1192448 2014-04-08 21:33:40

+0

如果这帮助你解决了你的问题,请接受它作为答案:) – 2014-05-22 10:50:27

+0

你也可以删除'MultiView'选项,它默认是关闭的。在我的apache2.4中,我需要将'+'或'-'放在所有选项中,如果我想排除'MultiViews' – cypherabe 2015-06-08 09:41:06

2

我遇到同样的问题,当我从升级Apache 2.2的至2.4。我基本上通过httpd-vhosts.php文件从一个版本复制到下一个版本(在升级指南中列出更改之后)。我的网站对除了/ index以外的每个页面都正常工作,但是如果我将其关闭,则主页会加载。

ArneRie在原始响应线程中提供的答案是为我解决了问题。从conf文件中删除MultiView可以解决问题。

0

今天我有类似问题。

所有其他控制器的工作原理,还航线指数控制器是这样的:

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

工作过。

但/ index/object显示404文件未找到错误。

必须是虚拟主机设置中的选项。我完全删除了它们,这对我来说很有帮助。

P.S:您也可以直接您的虚拟主机上的公共文件夹,以便您的链接看起来像:http://www.foo.com/user/register而非http://www.foo.com/public/user/register