所有
除了“欢迎使用Zend Framework”屏幕之外,我只是想查看任何页面。
我已从本教程下载了该项目: http://framework.zend.com/docs/quickstart/create-a-form (Zend Framework快速入门)
据我所知,路径正确。我看过这篇文章: http://www.johnmee.com/2008/11/zend-framework-quickstart-tutorial-deploy-to-a-subdirectory-instead-of-web-root/ 我认为它可能有点过时了,因为引导代码并不像他描述的那样。
有没有人有任何想法?我认为Zend的教程下载应该是开箱即用的。
要点: http://localhost/ZendFrameworkQuickstart/public/ 显示:Zend欢迎页面
http://localhost/ZendFrameworkQuickstart/public/guestbook 显示:404
谢谢!
UPDATE “公共”目录的物理路径: C:\ Zend的\的Apache2 \ htdocs中\ ZendFrameworkQuickstart \公共
我正在从浏览器点击的网址: http://localhost/ZendFrameworkQuickstart/public/guestbook
.htaccess内容:
SetEnv APPLICATION_ENV开发
RewriteEngine On
RewriteCond%{REQUEST_FILENAME} -s [OR]
RewriteCond%{REQUEST_FILENAME} -l [OR]
RewriteCond%{REQUEST_FILENAME} -d
RewriteRule ^。* $ - [NC,L]
RewriteRule ^。* $ /ZendFrameworkQuickstart /Public/index.php [NC,L]
更新:更改了文件中的行
的.htaccess RewriteRule ^。* $ /ZendFrameworkQuickstart/public/index.php [NC,L]
的application.ini resources.frontController.baseUrl =“/ ZendFrameworkQuickstart / public”
公共/ index.php的 error_reporting(E_ALL | E_STRICT); ini_set('display_errors',1);
答案 0 :(得分:1)
终于明白了。在Apache的httpd.conf文件中,将“AllowOverride None”的每个实例更改为“AllowOverride All”。
我不确定为什么Zend没有这个设置,因为我的Zend Framework安装设置Apache。在此更改之后,Quickstart按原样运行(甚至不需要在根目录中)。
感谢您的帮助!
答案 1 :(得分:0)
添加到Jacob的评论:我认为Quickstart应用程序的.htaccess文件中的mod_rewrite条件和规则要求所有内容都相对于域的根目录,特别是将所有内容重写到域的根目录({{1}具体而言。
所以:
另外,请确保在服务器上启用了mod_rewrite(假设您有一个apache服务器)。
修改强> 由于您的应用程序不是从服务器的根目录运行,您应该仍然可以在引导程序中的某处设置baseUrl。有类似的东西:
/index.php
但是,通过将应用程序放在服务器的根目录中,或者让服务器的根目录指向httpd.conf中的公共文件夹来解决这个问题,您将节省很多麻烦。选项可供您使用。
如果这样做,请务必再次将.htaccess置于默认设置。