我在Mac OS X Lion上安装了ZF 1.12项目。当我将浏览器指向...
http://localhost/~myusername/zendproj/public/index/index
...它按预期加载页面。它也适用于Index控制器中的其他操作。例如:
http://localhost/~myusername/zendproj/public/admin/index
当我查看其他控制器时......
http://localhost/~myusername/zendproj/public/admin/index
...我收到此错误
An error occurred
Page not found
Exception information:
Message: Invalid controller specified (~name)
Stack trace:
#0 /usr/local/zend/share/ZendFramework/library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#1 /usr/local/zend/share/ZendFramework/library/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch()
#2 /usr/local/zend/share/ZendFramework/library/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run()
#3 /Users/myusername/Sites/zendproj/public/index.php(26): Zend_Application->run()
#4 {main}
Request Parameters:
array (
'controller' => '~myusername',
'action' => 'zendproj',
'public' => 'admin',
'module' => 'default',
)
为什么我的vhost / .htaccess配置适用于一个控制器而不适用于另一个控制器?感谢
答案 0 :(得分:1)
Apache mod_userdir路径使路由器感到困惑。
由于我假设您的生产环境中不会从用户文件夹(~user
)访问ZF应用程序,我建议您设置一个虚拟主机条目,以便您可以使用以下方式在本地访问您的应用程序主机名。
修改/private/etc/hosts
并添加如下条目:
127.0.0.1 zendapp www.zendapp
然后尝试访问http://zendapp
以加载您的应用程序。
根据Apache的设置方式,您可能需要为zendapp
创建一个指向应用程序的public
文件夹的vhost,或者只需将ServerAlias
添加到现有的vhost中, Apache识别主机名。