htpasswd建立和更新存储用户名、密码的文本文件, 用于对HTTP用户的basic认证
htpasswd命令参数
1 | -c:创建一个加密文件; |
开启目录验证
假设apache的根目录是/usr/local/apache/,htpasswd位于Apache的bin目录
1.建立用户
1 | htpasswd -c /root/.htpasswd admin |
其中 .htpasswd 是存储账户密码的文件 admin是用户名
系统会要求您输入两遍密码
2.编辑httpd.conf
在httpd.conf里加入如下几句代码
1 | <Directory "/data/www/test.com/test/"> |
其中”/data/www/test.com/test/ “就是要权限访问的目录
AuthUserFile 放存账户密码的文件
Require user 后紧跟 允许访问的用户名
3.重启 apache
1 | service httpd restart |
使用.htaccess配置文件对目录设置密码保护教程
1、使用apache htpasswd.exe创建密码文件,命令请看PHP推荐教程:apache htpasswd命令用法详解
2、在需要保护的目录下创建创建.htaccess配置文件(比如:/www/manage)
3、在.htaccess配置文件中的写入配置信息,.htaccess配置文件的写法与apache配置文件有所不同,没有Directory
1 | vim .htaccess |
1 | AuthType Basic |
4、保存.htaccess配置文件,并将.htaccess配置文件放置
在需要设置密码保护的目录下,比如/data/www/XXXX目录
上述.htaccess配置功能与第一种方法实现的功能是一样的。
这时浏览加密的网站就需要输入用户名密码了。
.htaccess配置注意事项
除了和apache httpd.conf配置一样需要注意的那些问题之外,容易出现的一个错误是如果配置不正确,会出现.htaccess配置文件不起作用的问题,这是因为apache AllowOverride指令,决定了你的.htaccess是否能正常开启并启用。从安全性考虑,apache httpd.conf配置文件中网站根目录的AllowOverride属性一般都配置成不允许任何Override ,即
1 | <Directory /> |
所以要使apache能够正常的读取.htaccess文件的内容,开启.htaccess功能,使.htaccess配置文件中的设置起作用,就必须对网站根目录或者.htaccess 所在目录进行配置,将AllowOverride None更改为AllowOverride All。