我正在尝试学习Zend Framework 1.12模块目录结构,所以我手动创建它。到目前为止,我通过将这个模块添加到我的应用程序文件夹下的Bootstrap.php中来使用默认模块。
$this->bootstrap("frontController");
$front = $this->getResource("frontController");
$front->addModuleDirectory(APPLICATION_PATH . '/modules');
我尝试使用application.ini使用下面的设置执行此操作,但它一直给我一个例外,说“没有向前端控制器注册默认控制器目录”。
resources.frontController.defaultController = "index"
resources.frontController.defaultAction = "index"
resources.frontController.defaultModule = "default"
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[] = ""
这是我的目录结构:
root
|
+- application
|
+- configs
| |
| +- application.ini
|
+- modules
|
+- default
| |
| +- controllers
| | |
| | +- IndexController.php
| |
| +- views
| |
| +- scripts
| |
| +- index
| |
| +- index.phtml
|
+- signup
|
+- controllers
| |
| +- IndexController.php
|
+- views
|
+- scripts
|
+- index
|
+- index.phtml
这是我的重写规则:
RewriteEngine On
RewriteRule ^myroot/.*$ index.php [NC]
我尝试访问http://mysite.com/root/signup但我一直得到404.我是否遗漏了在Zend中设置模块的内容?
更新 如果我将默认设置为注册,则可以正常工作。
resources.frontController.defaultModule = "signup"
我现在最好的猜测是当我输入时,RewriteRule没有将它重定向到index.php
答案 0 :(得分:0)
将此添加到您的application.ini
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[] = "default"
resources.modules[] = "signup"