ZendRouter找不到页面:将文件夹名称视为控制器名称

时间:2009-03-23 12:28:33

标签: php zend-framework routing

我试图不是从根文件夹运行ZF Quickstart应用程序,而是从webserver子文件夹运行,就像通常的php应用程序一样,例如本地主机/快速启动。 当localhost / quickstart / guestbook给出找不到页面错误时:

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

它将父文件夹名称视为控制器名称。 我把问题缩小到这条线:

在Zend_Controller_Front ::的getInstance() - >调度();

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

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

2 个答案:

答案 0 :(得分:1)

您可能需要set the base url

例如:

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

答案 1 :(得分:0)

你说:

  

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

不一定与以下内容相同:

  

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

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