使用 .htaccess 檔案停用 Apache Web 目錄列表


當您使用 Apache Web 伺服器執行網站時,使用者可能能夠訪問特定目錄中檔案的目錄列表。此目錄列表對於某些用途可能有用,例如與一小群可信個人共享檔案時,但在大多數情況下,不希望這些檔案對公眾開放。

在本文中,我們將討論如何使用 .htaccess 檔案停用 Apache Web 目錄列表。此方法是一種快速簡便的方法,可以防止網站上特定目錄或一組目錄的目錄列表。我們還將解釋如何建立和編輯 .htaccess 檔案,該檔案用於控制 Apache 行為的各個方面。

先決條件

在開始之前,您需要以下內容:

  • 執行 Apache 的 Web 伺服器

  • 訪問伺服器的 .htaccess 檔案

  • 使用文字編輯器編輯檔案的基本知識

如何建立和修改 .htaccess 檔案

要使用 .htaccess 檔案停用目錄列表,您需要建立一個新的 .htaccess 檔案或修改現有的檔案。.htaccess 檔案是一個隱藏檔案,通常位於網站的根目錄中。

要建立新的 .htaccess 檔案,請按照以下步驟操作:

  • 開啟任何文字編輯器,例如記事本、Sublime Text 或 Visual Studio Code。

  • 將以下程式碼新增到文字編輯器中:

# Disable directory listing Options -Indexes
  • 將檔案儲存為 .htaccess。請注意,檔名必須以點開頭,並且不應有任何其他副檔名。

建立 .htaccess 檔案後,您可以使用 FTP 客戶端或檔案管理器將其上傳到網站的根目錄。如果您已經有一個現有的 .htaccess 檔案,則可以透過將 Options -Indexes 指令新增到檔案中來修改它。

要修改現有的 .htaccess 檔案,請按照以下步驟操作:

  • 使用文字編輯器或 FTP 客戶端開啟現有的 .htaccess 檔案。

  • 將以下程式碼新增到檔案中:

# Disable directory listing Options -Indexes
  • 儲存檔案並將其上傳到網站的根目錄。

請注意,對 .htaccess 檔案所做的任何更改都會立即生效,因此無需重新啟動 Apache 伺服器。

除了停用目錄列表外,您還可以使用 .htaccess 檔案執行其他有用的任務,例如設定自定義錯誤頁面、重定向 URL 和限制對某些目錄的訪問。但是,請注意,不正確使用 .htaccess 檔案也可能導致網站出現問題。因此,建議在進行任何修改之前備份現有的 .htaccess 檔案。

現在您的 .htaccess 檔案已準備就緒,讓我們深入瞭解如何使用它停用 Apache Web 目錄。

步驟 1:開啟 .htaccess 檔案

第一步是找到要停用目錄列表的目錄的 .htaccess 檔案。此檔案通常位於網站的根目錄中。

找到檔案後,在您選擇的文字編輯器中開啟它。如果您還沒有 .htaccess 檔案,只需建立一個新文字檔案並將其儲存為 .htaccess 即可。

步驟 2:新增相應的配置

接下來,我們需要將相應的配置新增到 .htaccess 檔案中以停用目錄列表。有兩種方法可以做到這一點:

選項 1:使用 Options 指令

Options 指令允許我們為目錄指定各種選項,包括停用目錄列表的功能。要使用 Options 指令停用目錄列表,請將以下行新增到您的 .htaccess 檔案中:

Options -Indexes

這會告訴 Apache 關閉當前目錄和所有子目錄的目錄索引。

選項 2:使用 IndexIgnore 指令

IndexIgnore 指令允許我們指定不應包含在目錄列表中的檔案和目錄列表。要使用 IndexIgnore 指令停用目錄列表,請將以下行新增到您的 .htaccess 檔案中:

IndexIgnore *

這會告訴 Apache 在生成目錄列表時忽略所有檔案和目錄。

步驟 3:儲存並上傳 .htaccess 檔案

將相應的配置新增到 .htaccess 檔案後,儲存檔案並將其上傳到您的伺服器。確保將其上傳到正確的目錄 - 通常是網站的根目錄。

步驟 4:測試您的配置

要測試您的配置,只需導航到網站上以前顯示目錄列表的目錄。如果一切配置正確,您現在應該會看到“403 禁止”錯誤,而不是目錄列表。

如何停用所有子目錄的目錄列表

預設情況下,Apache 允許 Web 根目錄的所有子目錄的目錄列表。但是,您可以透過將以下行新增到 .htaccess 檔案中來停用所有子目錄的目錄列表:

Options -Indexes

此行停用當前目錄以及所有子目錄的目錄列表。如果您只想停用某些子目錄的目錄列表,則可以在每個子目錄中建立一個單獨的 .htaccess 檔案,並將 Options -Indexes 行新增到這些檔案中。

如何自定義 403 錯誤頁面

停用目錄列表後,嘗試訪問沒有索引檔案的目錄的使用者將收到 403 禁止錯誤。預設情況下,Apache 會顯示一個通用的 403 錯誤頁面,但您可以自定義此頁面以向用戶提供更多資訊。

要自定義 403 錯誤頁面,您可以建立一個名為 .htaccess 的新檔案並新增以下行:

ErrorDocument 403 /custom-error-page.html

這將告訴 Apache 使用 custom-error-page.html 檔案作為 403 錯誤的錯誤頁面。您可以在 Web 根目錄或任何子目錄中建立此檔案,並使用您自己的 HTML 和 CSS 自定義它。

如何在 Apache 配置檔案中停用目錄列表

如果您有權訪問 Apache 配置檔案,則還可以透過將以下行新增到 Web 根目錄的 <Directory> 部分來停用目錄列表:

Options -Indexes

這將停用整個 Web 根目錄(包括所有子目錄)的目錄列表。如果您只想停用某些子目錄的目錄列表,則可以為這些目錄新增單獨的 <Directory> 部分,並將 Options -Indexes 行新增到這些部分。

結論

停用目錄列表是任何網站的重要安全措施,因為它可以防止攻擊者輕鬆訪問和下載敏感檔案。透過在 .htaccess 檔案中新增一行簡單的程式碼,您可以輕鬆地停用整個網站或某些目錄的目錄列表。透過自定義 403 錯誤頁面,您可以向嘗試訪問沒有索引檔案的目錄的使用者提供更具資訊性的訊息。

更新於:2023年6月26日

1K+ 閱讀量

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告