RHEL4- WEB服务(十 二 ) 用户访问apache服务器认证
 

 

    有些时候网站上的内容不是希望所有的用户都可以访问,由于网页内容性质的不同,会对来访的用户有所分类,网站的提供方希望部分网页内容只提供给部分访问者。而对除了这部分用户的其他用户则不能访问。

 
要实现这种功能,最直接有效的方法就是使用认证,当用户浏览网站上的敏感内容时,网站服务器会提示用户输入信息以鉴定用户身份来确定用户是否有权浏览网站上的这部分内容。实现的方法有很多,其中通过编程就可以实现,也可以通过简单的配置apache来实现。

 
下面我们就通过配置apache来实现:

 
一、 确定需要保护内容所保存的目录,也就是说确定一下需要使用密码验证用户的那部分内容索要保存的目录,具体的说就是只对部分访问者开放的网页文件所要保存在系统中的位置,例如 我们建立一个保存网页的目录 :/home/web

 
[root@localhost ~]#  mkdir /home/web

[root@localhost ~]#  ls /home

web

 
二、 修改httpd.conf文件,在文件中对这个目录进行设置,例如对/home/web中的网页内容加以认证保护:

 
1、打开apache配置文件httpd.conf

[root@localhost ~]#  vi /etc/httpd/conf/httpd.conf

 
2、 配置文件全文参见《 RHEL4- WEB服务(二)~上:apache安装默认配置文件 》,修改httpd.conf文件,在文件中对要保护的目录进行设置,例如我们对目录/home/www中的网页内容加以认证保护:在配置文件的第275到278行如下所示

 
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>


修改成如下:

<Directory  "/home/w eb " >
    Options FollowSymLinks
    AllowOverride  AuthConfig

Order allow,deny

Allow from all
</Directory>

 
在修改的过程中注意参数AllowOverride必须设置为ALL或者AuthConfig。让服务器在这个目录中使用目录访问控制文件。

*******************************************************************************

闪电cto——http://xudeqiang.blog.51cto.com

*******************************************************************************

 
三、 使用htpasswd命令建立用户,其格式为:htpasswd -c /目录/保存用户信息的文件 用户名。

 
1、以下是建立新的保存用户名和密码的文件,如下所示:

[root@localhost ~]# htpasswd -c /etc/httpd/conf/.htpasswds abc

New password:

Re-type new password:

Adding password for user abc

 
2、让我们再来添加一个用户guest,使用的格式是:htpasswd  目录/已经存在的文件 要再次添加的用户,注意这里没有参数“-c”,如下所示:

[root@localhost ~]# htpasswd  /etc/httpd/conf/.htpasswds guest

New password:

Re-type new password:

Adding password for user guest

 
3、 到此为止我们已经在文件中添加了两个用户,并且密码是加密的。让我们来看一看:

[root@localhost ~]# cat /etc/httpd/conf/.htpasswds

abc:wNfTbDREKVtBA

guest:EJe90GHhk4RFw

 
四、 建立好用户以后,就要在受保护的目录中建立.htaccess文件,我们在例子中使用的是 目录 /home/www 中使用命令vi直接建立文件:

 
[root@localhost ~]# vi /home/web/.htaccess

 
这样我们就建立并打开新的文档.Htaccess,并添加如下内容:

AuthName    "please enter passwd"

AuthType    Basic

AuthUserFile    /etc/httpd/conf/.htpasswds

require    user    abc    guest

 
.htaccess中添加完以上内容后,保存并退出。注意这部分内容是要自己编写添加的,内容大意为: AuthName  为认证提示内容,也是要自己编写,例如请输入密码或者“please enter passwd”要用引号。 AuthType 为认证模式,这里采用 Basic 。 AuthUserFile  为保存用户密码文件,也就是用密令htpasswd建立的文件。 require   user 为许可的用户,并不是在用命令htpasswd建立的文件中存在的用户都可以访问,而是只有此语句指定的用户允许访问,被指定的用户密码必须实际存在,才能实现访问的目的。

 
建立好后,要注意.htaccess和保存用户信息的文件的属性,Apache能读取文件就可以,而其他用户不要有读写权限。

*******************************************************************************

闪电cto——http://xudeqiang.blog.51cto.com

*******************************************************************************

 
五、访问测试,当我们使用用户访问网页的时候,就会弹出提示并要求输入用户名和密码,当输入正确的用户名和密码就可以访问网站的内容了。
 

 
 

——————————————————————————————————

特别声明:--

一、本文为原创,著作权及使用权为(作者笔名:闪电cto)本人所有。 ­

二、本文首发于51cto个人博客(http://xudeqiang.blog.51cto.com)。  ­

三、本文只供互联网上的读者分享,不供共享范畴,希知。 ­

四、未经许可严禁对本文作修改、节选、断章性质的处理。 ­

五、可转载,但必须注明原文章首发的出处网址,及文章作者,严禁复制。 ­

六、如若转摘用于杂志网络媒体新闻,必须通知作者得到允许后方可,需收稿费。­

七、作者联系信息:QQ:306718122   邮箱levinboy@foxmail.com

——————————————————————————————