我最近在共享主机上推出了一个zend框架项目。经过多次努力,我得到了第一个索引页面,但是传递了所有可自动加载的类,如模型,表单,映射器都找不到。
以下是我在根文件夹的公共目录外使用的.htaccess版本。
RewriteEngine On
RewriteRule ^\.htaccess$ - [F]
RewriteCond %{REQUEST_URI} =""
RewriteRule ^.*$ /public/index.php [NC,L]
RewriteCond %{REQUEST_URI} !^/public/.*$
RewriteRule ^(.*)$ /public/$1
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^.*$ - [NC,L]
RewriteRule ^public/.*$ /public/index.php [NC,L]
有点令人惊讶的事实是,相同的地图制作者和表单在首页或baseURL中被识别,但超过它,没有任何效果。
我做错了什么或错过了什么?
答案 0 :(得分:1)
我认为如果您从Zend Framework“public”文件夹中复制index.php
和.htaccess
并将其放在public_html
或同等目录中。如果您的Zend Framework应用程序目录与public_html位于同一目录中,则默认的.htaccess文件和index.php文件应该可以正常工作。
/home/yoursite
--application/
---- controllers
---- forms/
---- models/
---- views/
-- library/
-- public_html/ (public)
---- .htaccess
---- index.php
答案 1 :(得分:0)
改为使用
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
基本思路是,如果服务器上的请求URL存在文件,则将其发送到客户端浏览器,否则将请求转发给ZF应用程序来处理它。
要在根域下访问公共目录,请编辑Apache httpd.conf文件。将您的虚拟主机直接映射到公共目录。
答案 2 :(得分:0)
您可以尝试我寻找和应用的解决方案吗?它对我有用。 http://blog.motane.lu/2009/11/24/zend-framework-and-web-hosting-services/
您填写/public_html/.htaccess的所有内容(不是/public_html/public/.htaccess)
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]