这是我的问题:
我有一个在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',我已正确重命名所有文件,类和文件夹,并且应用程序运行良好,没有这个愚蠢的错误......
似乎'索引'这个词会产生某种错误。 这是一种神奇的......
答案 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