针对 .htaccess AuthBasic 保护的目录下,单个文件放开保护的办法

在使用 .htaccess 已经保护当前目录下所有文件都需要用户名密码认证时,怎样才能排除个别文件的访问不需要认证呢?

我们需要用 SetEnvIf  设置一个环境变量 noauth ,然后允许这个环境变量设置的 URI 可以绕过验证。

以下例子针对所有的 .txt URL 访问,可以绕过认证。

# cat .htaccess

# AuthBasicAuthoritative On
SetEnvIf Request_URI \.txt$ noauth=1
AuthUserFile /etc/httpd/.auth
Options Indexes
# AuthGroupFile /dev/null
IndexOptions NameWidth=* Charset=GBK FoldersFirst HTMLTable SuppressDescription
IndexOrderDefault Descending Date

Authname “News”
Authtype Basic
Order Deny,Allow
Satisfy any
Deny from all
Require valid-user
Allow from env=noauth