在 Ubuntu 上用 Apache 给网站或目录设置访问密码,通常是通过 基本身份认证(Basic Auth) 来实现的。下面是最常用的做法:
Apache 一般已经装好,主要需要 htpasswd 工具:
sudo apt update
sudo apt install apache2 apache2-utils
假设你想保护的用户叫 admin:
sudo htpasswd -c /etc/apache2/.htpasswd admin
-c-c,否则会覆盖:sudo htpasswd /etc/apache2/.htpasswd user2
查看文件内容(已加密):
cat /etc/apache2/.htpasswd
编辑站点配置,例如:
sudo nano /etc/apache2/sites-available/000-default.conf
在 <VirtualHost> 里加:
<Directory /var/www/html/secret>
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
</Directory>
/var/www/html/secret是你想保护的目录
.htaccess(更简单但稍慢).htaccess 生效:<Directory /var/www/html>
AllowOverride AuthConfig
</Directory>
.htaccess:sudo nano /var/www/html/secret/.htaccess
内容:
AuthType Basic
AuthName "Restricted"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
sudo a2enmod auth_basic
sudo systemctl restart apache2
浏览器访问:
http://你的服务器IP/secret/
会弹出用户名和密码框 ✅
.htpasswd 路径是否正确sudo chmod 644 /etc/apache2/.htpasswd
Require valid-user
Require ip 192.168.1.100
Require ip 192.168.1.0/24
如果你告诉我:
我可以给你更精确的配置示例。