一、核心原理
给某个虚拟主机开启 HTTP 基础认证,访问时弹出登录框:
- 输入正确账号密码 → 能看网站
- 输错 / 取消 → 401 拒绝访问
二、3 步完成设置(新手必看)
第一步:生成密码文件(关键)
Apache 需要一个专门存账号密码的文件(
.htpasswd)1. Windows(XAMPP)
打开 CMD 命令行,进入 xampp/apache/bin
cmd
D:
cd D:\xampp\apache\bin
执行命令生成账号密码(把
admin 换成你要的账号):cmd
htpasswd -c "D:\xampp\apache\conf\.htpasswd" admin
然后输入两次密码,生成成功!
2. Linux(CentOS / Ubuntu)
bash
运行
# 先安装工具
yum install httpd-tools -y # CentOS
apt install apache2-utils -y # Ubuntu
# 生成账号密码(admin 是账号)
htpasswd -c /etc/httpd/.htpasswd admin
第二步:在虚拟主机中加入密码配置
打开你的虚拟主机配置文件,加入以下配置:
完整示例(直接复制)
apache
<VirtualHost *:80>
ServerName www.mimasi.com
DocumentRoot "D:/xampp/htdocs/mimasi"
# ========= 账号密码权限 开始 =========
<Directory "D:/xampp/htdocs/mimasi">
AllowOverride All
AuthType Basic
AuthName "请登录后台" # 弹窗提示文字
AuthUserFile "D:/xampp/apache/conf/.htpasswd" # 密码文件路径
Require valid-user # 验证通过才能访问
</Directory>
# ========= 账号密码权限 结束 =========
</VirtualHost>
Linux 路径版
apache
AuthUserFile "/etc/httpd/.htpasswd"
第三步:重启 Apache 生效
- Windows:XAMPP → Stop Apache → Start
- Linux
bash运行
systemctl restart httpd # CentOS systemctl restart apache2 # Ubuntu
三、测试效果
访问你的网站:
plaintext
http://www.mimasi.com
会自动弹出账号密码登录框,输入你设置的账号密码才能进入 ✅
四、添加多个账号(可选)
第一次用
-c,之后加账号不要用 -c(会覆盖文件):cmd
htpasswd "D:\xampp\apache\conf\.htpasswd" user2
五、最常见问题
- 不弹密码框 / 直接访问
密码配置没写在 <VirtualHost> 内部
- 弹框但总提示错误
密码文件路径写错
- 403 无权限
缺少
<Directory>配置
总结
- 用
htpasswd生成密码文件 - 在虚拟主机里加入 4 行认证配置
- 重启 Apache 完成