2011-05-31 52 views
4

我有一個Debian網絡服務器的Apache2安裝,需要在一個目錄中的DirectoryIndex設定爲.html文件(正是這個名字 - 的.html)。但是當我嘗試從瀏覽器打開頁面時,它發送403錯誤。 我已經改變apache2.conf(設置爲允許.HT文件),我把.htacess文件目錄,並在其中設置:設置目錄索引.html文件中的Apache2

DirectoryIndex .html index.php index.html 
AllowOverride All 
Order Deny,Allow 
Allow from all 

但它仍然無法正常工作,並顯示403錯誤。我做錯了什麼,我忘記了什麼?

+0

你確認文件夾的讀取權限? – YeJiabin 2011-05-31 08:10:12

+0

是的,我甚至試圖將它設置爲777 – 2011-05-31 08:10:44

+0

@Evgeniy Skulditsky:我想你也可以檢查你的文件夾的所有者和組。 – YeJiabin 2011-05-31 08:12:28

回答

5

正確的答案是:

<FilesMatch "^\.html"> 
     Order deny,allow 
</FilesMatch> 

DirectoryIndex .html 
+0

謝謝!你能解釋這種行爲嗎? – 2011-05-31 08:32:01

+1

唉,當然。達米恩是對的。有一個規則阻止這些文件。我們正在釋放它們。這裏的關鍵是Order指令。順序拒絕,允許意味着它被默認允許,除非有拒絕規則。 – akond 2011-05-31 08:36:52

+0

但有一個小問題:host.com/dir/ - working,但host.com/dir/.html - 不 – 2011-05-31 08:37:39

1

聽起來像是你在丹尼斯對文件的訪問開始用. Apache的文件有一個規則的地方。這通常是一個很好的事情,因爲有很多的敏感文件,以點開始(即:htaccess的,使用svn,git的,htpasswd的,等等等等)。

你也許能夠得到解決的問題,像這樣的東西:

<FilesMatch "^\.html"> 
Order allow,deny 
Allow from all 
</Files> 

免責聲明:這似乎是一個黑客。我不知道你在做什麼,但是可能有一種更乾淨,更不容易出錯的方式來做到這一點。

+0

謝謝你的好答案,但我已經在apache2.conf中執行它: 命令允許,拒絕 允許所有 我也試過你的代碼,但它仍然是403錯誤。 – 2011-05-31 08:17:30