2012-03-07 82 views
0

我有一个zend框架应用程序,它似乎运行正常,我可以访问我的应用程序在domain.com/controller/action IndexController。我现在做了一个新的控制器,我得到“页面无法显示”。Zend Framework的网址

我可以然而在这个地址domain.com/index.php/controller/action访问我的新控制器

我已经检查了所有常见的东西的AllowOverride是,重写被启用,htaccess文件是默认一个是在制作Zend示例项目时创建的。我觉得我错过了一些基本的东西,如果有人能帮助它,将不胜感激!谢谢:)

回答

0

您需要设置路由来控制ZF如何将请求的URL路由(转换)为特定的控制器/操作。

看看到Zend框架路由文档here

尝试增加这样的事情你的application.ini:

resources.router.routes.routename.route = “/ myroute /” resources.router.routes.routename.defaults.controller = myController的resources.router.routes.routename.defaults.action = myaction

编辑:重新阅读您的问题后,您可能会遇到重写问题:)您提到allowoverride已打开 - 配置中的确切线是什么?

尝试“AllowOverride FileInfo”或“AllowOverride All”,如果您的请求没有通过您的index.php路由,完全可能是这种情况。

祝你好运!

+0

谢谢你,我阅读这件事情。我认为框架的一个功能是根据url自动将应用程序用户引导到正确的控制器和操作,以及结构良好的文件吗? – 2012-03-07 21:04:55

+0

我的行总是如下所示:“AllowOverride all” – 2012-03-07 21:09:16

+0

O和“FileInfo”也不起作用。 – 2012-03-07 21:10:51

0

我想可能是symlinks

这里有一个例子虚拟主机的作品

<VirtualHost *:80> 
    DocumentRoot "C:\www\zf2-tutorial\public" 
    ServerName zf2-tutorial.local 
    ErrorLog "C:\Zend\ZendServer\logs\zf2-tutorial.local.log" 
    SetEnv APPLICATION_ENV "development" 
    <directory "C:\www\zf2-tutorial"> 
    Options Indexes FollowSymlinks 
    AllowOverride all 
    Order Deny,Allow 
    Allow from all 
    </directory> 
</VirtualHost> 

我认为你的问题可能是Options Indexes FollowSymlinks不存在。

您的网址应该与domain.com/module/controller/action一起使用,但它可能会显示为domain.com/index.php/module/controller/action。有几种方法可以从显示的网址中删除index.php。我使用的方法是这一行添加到顶部的我index.php

$_SERVER["REQUEST_URI"] = str_replace('index.php','',$_SERVER["REQUEST_URI"]);