Linux

.htaccess 密碼保護某個目錄中的文件

  • December 18, 2018

我在服務的不同目錄中有同名文件(例如:stats.php),我想對其中一些文件進行密碼保護(根目錄中的.htaccess 文件)。我嘗試了帶有文件路徑的“FilesMatch”,但它不起作用,我嘗試如下添加“Directory”路徑,同樣的問題。

<Directory /var/www/vhosts/folder/httpdocs/directory/>
<FilesMatch "stats.php">
AuthName "Private file"
AuthType Basic
AuthUserFile /var/www/whatever/.htpasswd
require valid-user
</FilesMatch>
</Directory>

根目錄中的單個.htaccess文件不適用於此目的。您必須將新.htaccess文件放置到需要與其父級不同的設置的每個目錄中:

.htaccess文件(或“分佈式配置文件”)提供了一種基於每個目錄進行配置更改的方法。包含一個或多個配置指令的文件被放置在特定的文件目錄中,並且這些指令適用於該目錄及其所有子目錄

<Directory>指令僅允許在伺服器配置虛擬主機上下文中使用。該.htaccess文件是直接放置在目錄中的等效文件。你有兩個選擇:

  • 使用. /var/www/vhosts/folder/httpdocs/directory/.htaccess_ <FilesMatch "stats.php">如果您無權訪問伺服器配置,這是唯一的方法。
  • 放置<Directory /var/www/vhosts/folder/httpdocs/directory/>server configvirtual host中。這在性能上更好,因為它在 Apache 啟動時載入一次,而不是在每次請求時載入。

引用自:https://serverfault.com/questions/943237