2013-10-07 109 views
0

我有一個Zend應用程序使用hatccess並將所有內容重定向到index.php,但現在我需要在其中一個子文件夾中使用密碼保護文件夾,但是當我嘗試訪問子文件夾時給我404錯誤。父htaccess覆蓋子文件夾htaccess

這裏了Zend的htaccess中的public_html文件夾:

 

RewriteEngine On 
RewriteRule !\.(js|txt|ico|gif|GIF|jpg|JPG|png|PNG|css|swf|pdf|xml|XML|eot|svg|ttf|woff)$ index.php 
SetEnv APPLICATION_ENV "production" 

這裏的子文件夾中的htaccess:

 
RewriteEngine off 
AuthType Basic 
AuthName "*folder*" 
AuthUserFile "/home/*user*/.htpasswds/public_html/*folder*/passwd" 
require valid-user 

我嘗試添加RewriteRule ^blog/ - [L]到的public_html文件夾我看到: Overwrite rewrite-rule of htaccess in parent folder

但它沒有奏效。奇怪的是,如果我把子文件夾htaccess的密碼部分,「rewriteEngine off」工作,我得到了該文件夾中的文件列表。

觀測值:服務器是Apache的2.2.25,所以rewriteOptions InheritBefore不是一個選項

OBS2:在文件夾用戶不是那樣的實際htaccess的那只是隱藏名。

Obs3:即時通訊服務器配置中的noob

回答

0

這通常適用於我。在父htacesss將代碼粘貼到您的重寫規則

RewriteRule ^(blog)($|/) - [PT,L] 
+0

它沒有工作:( 即時通訊開始認爲服務器有一些配置,我不知道下面。 – gmlv

+0

我不知道你的應用程序運行在什麼樣的服務器。但是這可能是一個覆蓋問題。當你使用apache與vhosts。可以設置AllowOverride All。參見:http://httpd.apache.org/docs/current/mod/core.html#allowoverride –

+0

Ow你的服務器版本列在問題中,對不起,我可以檢查AllowOverride是否設置爲全部,如果沒有,設置爲全部並重新啓動Apache: –