
是否有指令明確設定目錄列表沒有索引文件到 403 禁止?預設行為回傳 404,因為模組目錄找不到索引檔。
我沒有mod_autoindex已載入並Options
設定為 just FollowSymLinks
。我嘗試了-Indexes
,但仍然返回 404。
<IfModule dir_module>
DirectoryIndex index.php index.html index.htm
DirectorySlash On
</IfModule>
<Directory /var/www>
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
我不應該關心,但我使用的是 Apache 2.4。
答案1
經過多次嘗試和錯誤後回答我自己的問題。這個答案應該適用於 Apache >= 2.0。
總之,Indexes
該指令的選項似乎Options
需要mod_autoindex。現在您可以停止閱讀,除非您想了解有關預設 Apache 行為的更多資訊。
更多資訊
關鍵是有沒有mod_autoindex已載入。如果未加載,設定Options -Indexes
將無效並返回 404,這是有道理的,因為 mod_dirDirectoryIndex
指令找不到您的索引檔。如果已加載,設定Options -Indexes
將返回 403。
這在某種程度上有所解釋Apache 選項文檔在下面索引,這有點令人困惑,因為它Options
是 mod_core 的一部分。
索引
如果請求對應到目錄的 URL,且該目錄中沒有 DirectoryIndex(例如,index.html),則 mod_autoindex 將傳回該目錄的格式化清單。
……並解釋了mod_autoindex頁:
使用選項+索引啟用自動索引產生。有關更多詳細信息,請參閱選項指令。
我的測試顯示啟用/停用 .htaccess 檔案AllowOverride
是無關緊要的。