我正在通过这种方式禁止未经授权的用户访问某些文件夹:
AuthUserFile /var/www/passwords/.htpasswd_private
AuthType Basic
AuthName "Access to private admin section"
Require valid-user
它在生产 (Ubuntu) 服务器上运行良好。问题是我想要相同的代码允许在 Windows 开发计算机上进行访问(或至少要求输入密码)。
尝试添加
Allow from 127.0.0.1
但是日志显示错误,因为它无法在开发计算机上找到密码文件。系统找不到指定的路径。:无法打开密码文件:C:/var/www/passwords/.htpasswd_private
有什么优雅的方式可以告诉 apache 在开发计算机上允许访问或要求输入密码?
答案1
创建目录C:/var/www/passwords/.htpasswd_private
,然后使用htpasswd.exe
apache 安装附带的程序创建.htpasswd_private
文件
htpasswd -c C:/var/www/passwords/.htpasswd_private username
Automatically using MD5 Format
New password: *********
Re-type password: *********
Adding password for user username
现在您应该拥有一个像生产服务器一样工作的系统。
答案2
允许并不意味着您可以不用密码登录,它只是设置哪些主机可以访问它。它仍然会要求您输入密码。
您有两个选择:
- 在以下位置创建有效的 .htpasswd_private 文件
C:/var/www/passwords/.htpasswd_private
您可以在目录声明中删除这些选项:
AuthUser文件 /var/www/passwords/.htpasswd_private
AuthType 基本版
AuthName“访问私人管理部分”
需要有效用户
您只需保留“允许来自 127.0.0.1”语句。
答案3
我有一个双重 htpasswd+LDAP 身份验证,AuthBasicProvider file ldap
如下所示:AuthType Basic AuthName“MyApp”
AuthBasicProvider file ldap
AuthUserFile /var/www/domain.tld/myapp/.htpasswd
# LDAP
AuthzLDAPAuthoritative off
AuthLDAPURL "ldaps://ldap.domain.tld:636/dc=domain,dc=tld?uid?sub?(&(objectClass=person)(mail=*@domain.tld))" SSL
AuthLDAPBindDN "CN=myapp,OU=Applications,DC=domain,DC=tld"
AuthLDAPBindPassword "xxxxxxxxxx"
AuthLDAPGroupAttribute memberUid
AuthLDAPGroupAttributeIsDN off
Require valid-user
仅删除/注释以下指令似乎就足够了:
AuthUserFile
AuthzLDAPAuthoritative
Require