2009-06-29 67 views
3

我有這個.htaccess文件,我阻止用戶從物理上的瀏覽器(他們只能通過系統加載)如何用.htaccess拒絕所有目錄名稱?

Options -Indexes 
Order deny,allow 
deny from all 

訪問文件,我有一個問題,雖然,有時我通過AJAX和加載文件我得到了403禁止。我對Apache的mod_access幾乎沒有經驗。我一直在閱讀directory directive,因爲所有基於AJAX的文件都位於一個名爲ajax的目錄中。

但事情是我需要拒絕所有目錄除了稱爲ajax的所有目錄和我的正則表達式技能缺乏。

示例目錄結構是這樣的。

plugins/inventory/ajax 
plugins/inventory/controller 
plugins/inventory/view 

plugins/packages/ajax 
plugins/packages/controller 
plugins/packages/view 

.htaccess文件位於plugins目錄中。

回答

3

你首先需要做的是項目架構的失敗。應該永遠無法訪問的腳本文件不應該放在您的DocumentRoot中。

這就是說,這將可能工作:

RewriteEngine on 
<DirectoryMatch "/(?!.*/ajax$)"> 
    Order deny,allow 
    Deny from all 
</DirectoryMatch> 
+0

感謝上的提示,這樣做的原因是,人們在寫一個自動加載到系統中的插件,應該能夠拖放到位置。 – 2009-06-29 11:17:43