我想htpasswd保护单个文件而不是子目录中的文件

时间:2013-10-07 14:22:17

标签: apache .htaccess passwords subdirectory .htpasswd

我的域根目录中有一个.htpasswd文件和一个.htaccess文件,该文件应保护单个index.php文件。不幸的是,asif index.php子目录中的文件也受到保护。 是否可以在单个文件上进行此工作并保留子目录中的文件不受影响?

这是我当前的.htaccess文件。

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

2 个答案:

答案 0 :(得分:0)

包含斜杠,表示文件的确切位置,例如在目录的根目录?

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

答案 1 :(得分:0)

有趣的问题。使用FilesFilesMatch对您没有帮助,因为它只匹配文件名,而不管目录文件是什么。不幸的是Location文件中不允许.htaccess指令。 / p>

幸运的是,你可以在这里使用指令,即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