2012-05-22 61 views
4

我已經目錄層次結構如下要求指令在.htaccess防止目錄被顯示

-root_folder 
    .htaccess 
    -sub_folder 
     .htaccess 

.htaccess文件的sub_folder內容:

AuthType Basic 
AuthName "webdav" 
AuthUserFile /var/www/test/passwd.dav 
Require user test 

root_folder包含以下.htaccess

Satisfy any 
Order deny,allow 
Deny from all 
Allow from env=ALLOWED 
SetEnvIfNoCase Request_URI "^/+webdav/root_folder/?$" ALLOWED 

請注意,ia使用WebDav

它設置在/etc/apache2/conf.d/webdav。該文件包含以下內容:

Alias /webdav /home/user/projects/test/public 
<Location /webdav/> 
    Order Allow,Deny 
    Allow from #list of ips here 
    DAV On 
    PassengerEnabled off 
    LimitXMLRequestBody 0 
    Options Indexes FollowSymLinks 
</Location> 

的問題是,當我嘗試使用的瀏覽器不顯示sub_folder訪問localhost/webdav/root_folder/文件夾。 但是,當我刪除Require user some_user指令sub_folder顯示在列表中。如果我嘗試輸入localhost/webdav/root_folder/sub_folder/,當啓用Require user指令時,系統會要求輸入登錄名和密碼,如果輸入正確的憑據,則一切正常。

是否可以列出目錄中的所有內容,同時在子文件夾內的.htaccess文件中使用require user指令來控制對它們的訪問?

+0

不錯的問題+1 – anubhava

回答

2

在你ROOT_FOLDER(我相信這是你的$DOCUMENT_ROOT)創建.htaccess文件有如下內容:

SetEnvIfNoCase Request_URI "^/*$" ALLOWED 

Satisfy  any 
Order   deny,allow 
Deny from  all 
Allow from  env=ALLOWED 

如果root_folder沒有$ DOCUMENT_ROOT然後使用:

SetEnvIfNoCase Request_URI "^/+root_folder/?$" ALLOWED 

爲第一線。

+0

感謝您的回覆。那麼,現在'sub_folder'顯示,但是當我打它時,我不會被要求輸入我的登錄名和密碼。我的目標是控制對不同目錄的訪問而不隱藏它們。 – RomanKapitonov

+0

在我的設置中,當我點擊列表中的子文件夾時,它會詢問登錄名/密碼。你能否從root_folder和sub_folder發佈你的兩個.htaccess。 – anubhava

+0

我編輯了這個問題。你能看一下嗎? – RomanKapitonov