常用的Zend Framework项目的目录结构如下:

当我们使用上面的目录结构时,需要将所有能通过浏览器访问的文件放在public目录,然后修改Web服务器的配置将文档目录指向此目录。

但问题是一般情况下,在使用共享的虚拟主机时,我们没有修改配置文件的权限,解决这个问题的简单方法,将public目录中的.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]

要求服务器支持Rewrite且能够解析.htaccess。

查看原文:http://www.alberton.info/zend_framework_mod_rewrite_shared_hosting.html