【问题标题】:Page not found by ZendRouter: treats folder name as controller nameZendRouter 找不到页面:将文件夹名称视为控制器名称
【发布时间】:2009-03-23 12:28:33
【问题描述】:

我尝试不是从根文件夹,而是从 webserver 子文件夹运行 ZF Quickstart 应用程序,就像通​​常的 php 应用程序一样,例如本地主机/快速入门。 当 localhost/quickstart/guestbook 给出 page not found 错误:

> Page not found
> 
> array(3) {   ["controller"]=>  
> string(10) "quickstart"   ["action"]=>
> string(9) "guestbook"   ["module"]=>  
> string(7) "default" }

它将父文件夹名称视为控制器名称。 我已将我的问题缩小到这一行:

Zend_Controller_Front::getInstance()->dispatch();

我应该以某种方式配置路由器对象以避免父文件夹混淆吗?我应该使用什么代码?

我的元目的是在同一个网络服务器上运行几个 zend 应用程序。

【问题讨论】:

    标签: php zend-framework routing


    【解决方案1】:

    您可能需要set the base url

    例如:

    $controller->setControllerDirectory('./application/controllers')
           ->setRouter($router)
           ->setBaseUrl('/quickstart');
    

    【讨论】:

      【解决方案2】:

      你说:

      我尝试不从根文件夹,而是从 webserver 子文件夹运行 ZF Quickstart 应用程序,

      这不一定与以下内容相同:

      我的元目的是在同一个网络服务器上运行几个 zend 应用程序。

      RoBorg 说的是真的,并且专门回答了您的第一个问题,但是对于每个站点都必须这样做很痛苦(另外这意味着开发站点和已部署站点上的路由不一样),当您想要什么时真正喜欢的是能够使用自己的子域设置所有项目 URL,这样它们就可以在顶层运行,而无需触及任何配置或路由。恰好I wrote a blog post on this最近...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多