我正在用zend框架1.12开发一个项目
如果我将所有文件保存在根文件夹中,一切正常,但如果创建一个新文件夹并移动所有文件,则没有任何效果。
以下是我的文件夹结构应用图书馆公共索引.php.htaccess
.htaccess
SetEnv APPLICATION_ENV development
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^js/(.*)$ public/js/$1 [L]
RewriteRule ^images/(.*)$ public/images/$1 [L]
RewriteRule ^css/(.*)$ public/css/$1 [L]
RewriteRule ^.*$ index.php [NC,L]
应用程序/配置/应用程序.ini
[production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 1
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"
resources.frontController.baseUrl = "/"
resources.session.remember_me_seconds = 864000
[staging : production]
[testing : production]
[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1
resources.db.adapter = "PDO_MYSQL"
resources.db.params.host = "localhost"
resources.db.params.username = "root"
resources.db.params.password = "root123"
resources.db.params.dbname = "labs"
resources.db.isDefaultTableAdapter = true
resources.db.params.profiler.enabled = true
resources.db.params.profiler.class = Zend_Db_Profiler_Firebug
includePaths.models = APPLICATION_PATH "/models/"
resources.frontController.baseUrl = "/"
如果我在实验室/中移动所有文件夹并在应用程序中进行更改.ini则为
resources.frontController.baseUrl = "/labs/"
http://domainname/ : Works fine
https://domainname/labs : gives error
如何解决这个问题。我想将所有文件放在新文件夹中,以便在 root 中创建更多项目。
错误
An error occurred
Page not found
Exception information:
Message: Invalid controller specified (labs)
Stack trace:
#0 /var/www/html/labs/library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#1 /var/www/html/labs/library/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch()
#2 /var/www/html/labs/library/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run()
#3 /var/www/html/labs/index.php(30): Zend_Application->run()
#4 {main}
Request Parameters:
array (
'controller' => 'labs',
'action' => 'index',
'module' => 'default',
)
也许你必须在配置文件中更改你的"baseUrl"。
resources.frontController.baseUrl = "/labs/"
也许是这样的:如何设置baseUrl
无需更改 .htaccess 中的任何内容
应用程序.ini更改为
resources.frontController.baseUrl = "/labs"
在引导中添加以下函数.php您将完成。
protected function _initBaseUrl()
{
$options = $this->getOptions();
$baseUrl = isset($options['settings']['baseUrl'])
? $options['settings']['baseUrl']
: null; // null tells front controller to use autodiscovery, the default
$this->bootstrap('frontcontroller');
$front = $this->getResource('frontcontroller');
$front->setBaseUrl($baseUrl);
}