我正在使用Zend Framework 1,一切都很顺利,除了一件事。我的网站没有加载资产。我知道这可能是.htaccess的一个问题,但我已经尝试了很多东西来解决这个问题而没有成功。
我的文件夹结构是:
|- /
|---application
|---library
|---public
|------assets
|------cgi-bin
|------images
|---resources
我的.htaccess文件(在/ public文件夹中):
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
不幸的是,当我访问网站时,它会加载所有内容,但位于my / public / assets和/ public / images文件夹中的文件除外。当我尝试通过URL访问该文件时,ZEND会返回“找不到页面”错误。
任何人都知道如何解决这个问题?
谢谢!
答案 0 :(得分:0)
我假设您使用的是共享主机,并且没有权限修改Apache vhost条目。在这种情况下,您遇到的问题非常普遍。
一个对我有用的解决方案是我称之为“下推和保护”的方式,您可以在其中下载所有ZF内容 - application
,data
,{{1}在您的library
目录中,作为_zf
的兄弟,进入自己的assets
目录。然后将public
添加到该DENY ALL
目录中的.htaccess
,并调整您的顶级_zf
入口点中的路径。
注意:在public/index.php
中添加DENY ALL CRITICAL ,因为标准ZF设置包含您不想要的配置,信用和其他数据可以通过网络直接访问。这无疑是这种方法的缺点;如果你忘了保护那个目录,那么你就是敞开的。
此方法是this answer的基础,并会更详细地解释here。