我们对我们服务器上托管的所有网站使用zend框架,我面临的情况是,我没有看到任何方法,并且有办法让它工作。
我的服务器使用CentOS + php 5.3 + WHM / cPanel。
其中一个网站必须有受密码保护的文件夹:http://website.com/files/protected_files
但是大家都知道,目前位于/home/website/public_html
的Zend的.htaccess并没有让/home/website/public_html/files/protected_files/.htaccess
正常工作。
如果我禁用Zend的.htaccess
URL提示输入密码,当我输入时我可以看到我的文件,但是当我启用Zend的.htaccess
时,它会将该URL视为真正的URL并且会丢失无法找到页面的错误。
这是我的Zend的.htaccess:
Rewriteengine on
RewriteRule !\.(js|txt|ico|gif|GIF|jpg|JPG|png|PNG|css|swf|pdf|xml|XML|eot|svg|ttf|woff)$ index.php
这是位于protected_files
中的.htaccessAuthType Basic
AuthName "protected"
AuthUserFile "/home/website/.htpasswds/public_html/files/protected_files/passwd"
require valid-user
我在这里缺少什么。为什么不起作用?
我尝试启用Allowoverride AuthConfig
/ AllowOverride none
/ AllowOverride all
,但所有这些都无效。
我还尝试将.htacces
内容从protected {files}放入httpd.conf
内,但它不起作用。
我对服务器有root权限,所以任何提示都会有所帮助!
答案 0 :(得分:0)
参见ZF2的Skeleton Application .htaccess
:
https://github.com/zendframework/ZendSkeletonApplication/blob/master/public/.htaccess
从这个配置中可以看出,如果文件不存在,它只会将请求重写为index.php
。这与您配置的当前规则形成对比,如果它没有您指定的扩展名,则重写任何内容。