Linux
.htaccess 密碼保護某個目錄中的文件
我在服務的不同目錄中有同名文件(例如: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 config或virtual host中。這在性能上更好,因為它在 Apache 啟動時載入一次,而不是在每次請求時載入。