【发布时间】:2012-12-17 17:40:43
【问题描述】:
我正在使用 Zend 框架中的多模块 CMS。我想创建一个这样的结构:
testsite/
index.php
library/
zend/
test/
application/
configs/
application.ini
modules/
users/
controllers/
models/
....
frontend/
controllers/
models/
....
backend/
controllers/
models/
...
bootstrap.php
我创建了以下代码:
//in application.ini
resources.frontController.defaultModule = "frontend"
resources.frontController.defaultControllerName = "index"
resources.frontController.defaultAction = "index"
resources.frontController.plugins.init = "Test_Controller_Plugin_Initializer"
//in bootstrap.php
protected function _initControllers()
{
$this->bootstrap('frontController');
$this->_front = $this->getResource('frontController');
$this->_front->addControllerDirectory(APPLICATION_PATH . '/backend/controllers', 'backend');
$this->_front->addControllerDirectory(APPLICATION_PATH . '/frontend/controllers', 'frontend');
}
//in Test/controllers/plugin/initializer.php
public function preDispatch(Zend_Controller_Request_Abstract $request)
{
$front = Zend_Controller_Front::getInstance();
$request = $front->getRequest();
$request->setModuleName('frontend');
$request->setControllerName('index');
$request->setActionName('index');
}
当我转到我的基本 URL .../testsite 时它不起作用。你能告诉我哪里出错了吗?
【问题讨论】:
-
显示 .htaccess 文件中的内容
-
在我的 .htaccess 中,我有这样的代码: RewriteEngine On RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ .*$ - [NC,L] RewriteRule ^.*$ index.php [NC,L]
-
您似乎遇到了安全问题。
/testsite/目录中的 Index.php,它使您的应用程序中的所有内容都可能是可服务的。不是一个好主意。您至少应该实现一个公共或 html 目录并将您的应用程序放在您的 docroot 之外。
标签: zend-framework frameworks multi-module