2013-10-07 77 views
0

我在我的域的根目錄中有一個.htpasswd文件,應該保護單個index.php文件的.htaccess文件。不幸的是,似乎asif index.php文件在子目錄中也受到保護。 是否有可能使這項工作在一個單一的文件,並保持子目錄中的文件不變?我想htpasswd保護單個文件不是子目錄中的文件

這是我當前的.htaccess文件。

<Files "index.php"> 
AuthName "Users zone" 
AuthType Basic 
AuthUserFile /home/deb69824/domains/.htpasswd 
require valid-user 
</Files> 

回答

0

包含一個斜線,表示文件的確切位置,例如,在目錄的根目錄中?

<Files "./index.php"> 
AuthName "Users zone" 
AuthType Basic 
AuthUserFile /home/deb69824/domains/.htpasswd 
require valid-user 
</Files> 
0

有趣的問題。使用FilesFilesMatch不會對您有所幫助,因爲只會匹配文件名而與目錄文件無關。不幸的是,.htaccess文件中不允許Location指令。

幸運的是,有一項指令,你可以利用這裏,即mod_setenvif

# set env variable if URI is /index.php 
SetEnvIf Request_URI "^/index\.php$" HOME_INDEX 

# use BASIC authentication only when env variable HOME_INDEX is set 
AuthType Basic 
Authname "Users zone" 
AuthUserFile /home/deb69824/domains/.htpasswd 

Require valid-user 
Satisfy any 
Order allow,deny 
Allow from all 
Deny from env=HOME_INDEX 
+0

感謝您的答覆。這不利於我,但它確實導致瞭解決方案。我保留了原始的.htaccess文件,並在包含「滿足任何」的子目錄中添加了另一個文件。這使該子目錄不受密碼保護。唯一的缺點是我必須將.htaccess文件放在我要製作的每個子目錄中。幸運的是,我現在只需要一個。 感謝您的幫助! – joren

+0

如果此答案幫助您解決問題,請考慮將其標記爲「已接受」,以便將來遇到類似問題的用戶可以輕鬆查看。 – anubhava

+0

這個工作適合你嗎? – anubhava

相關問題