详细说明如何通过Apache的.htaccess实现密码保护网站文件、目录,限制IP地址
基础知识:
下面提到的 AuthUserFile /home/path/.htpasswd ,用于指定密码文件.htpasswd, 该文件需要手工建立。 /home/path 是用于存放 .htpasswd 文件的目录,相应修改。
Google下能找到很多相关说明,也可以在线生成 .htpasswd 密码文件,例如:http://tools.dynamicdrive.com/password/
这些代码需要保存到 .htaccess 文件,并置于需要保护的目录下。
基本的密码保护方法:
# basic password protection
AuthUserFile /home/path/.htpasswd
AuthName "Username and password required"
AuthType Basic
Require valid-user
仅某些IP可以访问,其它的需要输入密码:
# password protect excluding specific ips
AuthName "Username and password required"
AuthUserFile /home/path/.htpasswd
AuthType Basic
Require valid-user
Order Deny,Allow
Deny from all
Allow from localhost
Allow from 111.222.333.444
Allow from 555.666.777.888
Satisfy Any
仅某些IP段的用户访问需要密码,其它IP的用户无需密码:
# password protect only for specified ips
AuthName "Username and password required"
AuthUserFile /home/path/.htpasswd
AuthType Basic
Require valid-user
Order Allow,Deny
Allow from all
Deny from 111.222.333.444
Deny from 555.666.777.888
Satisfy Any
密码保护单个文件:
# password protect single file
AuthName "Username and password required"
AuthUserFile /home/path/.htpasswd
Require valid-user
AuthType Basic
其中 protected.html 是需要输入密码才能访问的文件。
密码保护多个文件:
# password protect mulitple files
AuthName "Username and password required"
AuthUserFile /home/path/.htpasswd
Require valid-user
AuthType Basic
上面指定 “protected.html” 和 “passwords.txt” 文件需要密码才能打开。同样可以加上更多的文件。
密码保护多种文件类型:
# password protect mulitple file types
AuthName "Username and password required"
AuthUserFile /home/path/.htpasswd
Require valid-user
AuthType Basic
这样就密码保护了这些类型的文件:.inc, .txt, .log, .dat, .zip, .rar。
密码保护除了某个文件外的所有文件:
# password protect everything except a single file
AuthName "Username and password required"
AuthUserFile /home/path/.htpasswd
Require valid-user
AuthType Basic
Order Deny,Allow
Deny from all
Allow from 123.456.789
Satisfy any
这样就只有访问 open-access.html 这个文件不需要密码,该文件可以是保存在某个子目录中。
密码保护除了某些文件外的所有文件:
# password protect everything except specified files
AuthName "Username and password required"
AuthUserFile /home/path/.htpasswd
Require valid-user
AuthType Basic
Order Deny,Allow
Deny from all
Allow from 123.456.789
Satisfy any
这样就密码保护除了“open-access-1.html”, “open-access-2.html”, “open-access-3.html” 外的所有文件。