http.basicauth

basicauth实现HTTP基本身份验证。基本身份验证可用于通过用户名和密码保护目录和文件。注意,基本身份校验在纯HTTP协议访问时也是不安全的。请谨慎考虑决定使用HTTP基本身份验证来保护什么。

当用户请求受保护的资源时,如果用户尚未提供用户名和密码,浏览器将提示用户输入用户名和密码。如果Authorization头中存在正确的凭证,服务器将授予对资源的访问权,并将{user}占位符设置为用户名的值。如果头信息丢失或凭证不正确,服务器将返回"HTTP 401 Unauthorized"。

此指令允许使用.htpasswd文件,方法是在密码参数前面加上htpasswd=和要使用的.htpasswd文件的路径。

对.htpasswd的支持只针对遗留站点,将来可能会被删除;不要在新站点上使用.htpasswd。

语法

basicauth path username password
  • path 要保护的文件或目录
  • username 用户名
  • password 密码

这种语法使用默认范围(realm)"Restricted",对于保护单个文件或基本路径/目录非常方便。为了保护多个资源或指定一个范围,使用下面的变体:

basicauth username password {
    realm name
    resources
}
  • username 用户名
  • password 密码
  • realm 标识保护范围;它是可选的,不能重复。realm用于指定应用保护的范围。对于配置为记住身份验证细节(大多数浏览器都是这样)的用户代理来说非常方便。
  • resources 要保护的文件/目录列表,每行一个。

例子

保护"/secret"下所有文件,只有Bob使用密码"hiccup"才能访问:

basicauth /secret Bob hiccup

使用范围"Mary Lou's documents"保护多个文件和目录,用户"Mary Lou"可以使用她的密码"milkshakes"访问:

basicauth "Mary Lou" milkshakes {
    realm "Mary Lou's documents"
    /notes-for-mary-lou.txt
    /marylou-files
    /another-file.txt
}