使用 .htaccess 密碼保護虛擬目錄

使用 .htaccess 密碼保護虛擬目錄

我有一個具有虛擬目錄結構的網站,mysite.com/folder/title它實際上是 .htaccess 重寫為mysite.com/f/index.php?p=title.我想folder使用 .htaccess 對資料夾進行密碼保護,並且知道如何對實際資料夾執行此操作。但我不想用密碼保護主站點mysite.com,現在如果我將 .htaccess 檔案放入mysite.com目錄中,我將保護mysite.commysite.com/folder。我也曾嘗試過保護mysite.com/f

如何僅mysite.com/folder使用 .htaccess 進行保護?

.htaccess 的內容mysite.com

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteRule ^folder/(.*)$ /f/index.php?p=$1 [PT,L,QSA]
RewriteRule ^folder/*$ /f/index.php [L,QSA]

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

</IfModule>

我嘗試過的 .htaccess 檔案mysite.com/f當移動到其他 .htaccess 檔案時,這成功地保護了整個站點,因此我知道路徑是正確的。

AuthName "Restricted Area" 
AuthType Basic 
AuthUserFile /home/myusername/.htpasswd 

答案1

首先,您不應該將該配置(重寫規則)放在 .htaccess 檔案中,您應該將其放在目錄部分下的主設定檔中(假設您有權存取該檔案)。這Apache 文件解釋了原因

您應該檢查您的AllowOverride 設定是否正確。如果一切設定正確,將您指定的 .htaccess 檔案放在 mysite/f 資料夾中應該足以對其進行密碼保護。

相關內容