我的Zend框架路由设置不能按需要工作。当我访问“site”时,根据需要执行application/modules/default/views/script/index/index.phtml下的代码。如何在Zend Framework中调试路由?
但是,当我尝试“网站/家”,我得到一个404错误页面。 apache日志显示(文件不存在:/ var/www/site/public/home)。另外,访问http://site/default/index/index产生相同的结果。 (http://site/index工作正常。)
Zend的版本:1.10.8
阿帕奇/etc/apache2/apache2.conf中:
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot "/var/www/site/public"
<Directory /var/www/site/public>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
我/var/www/site/public/.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 ^.*$ index.php [NC,L]
我/var/www/site/public/index.php
...
/** Zend_Application */
require_once 'Zend/Application.php';
// Create application, bootstrap, and run
$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap()
->run();
我的application.ini文件:
[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.frontController.params.displayExceptions = 0
resources.modules = ""
resources.router.routes.home.route = /home
resources.router.routes.home.defaults.module = default
resources.router.routes.home.defaults.controller = index
resources.router.routes.home.defaults.action = index
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"
resources.view[] =
autoloaderNamespaces[] = "Site_"
[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1
我曾尝试移动路由到routes.ini和应用程序将它们添加/ bootstrap.php中,如下所示:
$config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/routes.ini', 'production');
$router = new Zend_Controller_Router_Rewrite();
$router->addConfig($config, 'routes');
$r = new Zend_Controller_Router_Route(
'home/',
array(
'controller' => 'index',
'action' => 'index'
)
);
$router->addRoute('home', $r);
然而,这并没有帮助。我花了整整一天的时间阅读手册,书籍和网络论坛,试图找到问题无济于事。 (我一直在下面的 “Zend框架” 由维克拉姆瓦斯瓦尼。)
你知道,如果404错误是来自Apache还是ZF?我看不出你发布的内容有什么明显的错误。 – 2011-03-29 08:34:22