解决在Apache上如何针对某个特定的目录设置访问认证?

2011年12月14日星期三 | | |

在Apache上如何针对某个特定的目录设置访问认证?
解决方法:

在Apache内部已经包含了针对任何目录的保护设置. 密码保存在加密文件里面. 但是,如果您的网站没有使用SSL,您的用户名和密码在传输的过程中是以明文的方式传输的.因此,强烈推荐您在限制某些区域的访问时,使用SSL加密您的网站.

在本文中,假设您的网站的根目录是/var/www/html,您希望保护的目录是/var/www/html/private.

首先,编辑/etc/httpd/conf/httpd.conf文件. 在<Directory /var/www/html>设置章节里面找到AllowOverride,默认情况下,配置如下:

AllowOverride None    

改变上面的设置到:

AllowOverride AuthConfig    

重新启动web服务:

service httpd restart    

下一步, 创建一个.htaccess文件告诉apache来限制某个目录的访问. .htaccess文件应该放在您要保护的目录下面. 例如,在/var/www/html/private目录下面,建立一个文件.htaccess:

# /var/www/html/private/.htaccess  AuthName "Private Directory"  AuthType Basic  AuthUserFile /var/www/.htpasswd  require valid-user  

下一步是创建密码文件. 使用htpasswd命令创建密码文件.建议把密码文件不要放在web服务的目录下面.

htpasswd -c /var/www/.htpasswd username    

"username"是要访问private目录的用户名.提示,这里创建的用户名只是用来访问被限制的目录,不需要是系统帐号. -c 选项只是在第一次创建帐号的时候使用.

打开浏览器,访问http://yourhostname.com/private,将会弹出一个输入框,让您输入用户名和密码

参考文献: http://www.cn.redhat.com/kbase/0705/7105.php

0 评论:


所有文章收集于网络,如果有牵扯到版权问题请与本站站长联系。谢谢合作![email protected]