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