使用apache和htaccess对目录访问设置密码保护配置教程

在PHP网站开发中,如何保证网站的安全性是我们必须考虑的问题,之前介绍过通过apache配置文件对目录访问权限进行控制的方法,今天会以 教程的形式向大家介绍如何使用apache和htaccess对相关目录进行密码保护配置,比如对网站管理后台目录访问进行密码保护,访问后台管理目录时 必须使用合法用户名和密码才能访问。

在继续往下学习时,如果你对apache htpasswd.exe命令不太熟悉,推荐你先查看相关的PHP教程。

 

对目录设置密码保护配置说明

在本教程中主要介绍两种方法,一种是通过apache httpd.conf配置文件对管理后台目录设置密码保护,适用于具有服务器控制权限的用户,另一种是通过.htaccess配置文件对目录设置密码保护,适用于虚拟主机用户。

apache httpd.conf配置文件对目录设置密码保护教程

1、使用apache htpasswd.exe创建密码文件,命令请看PHP推荐教程:apache htpasswd命令用法详解

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

3、找到<Directory>…</Directory>块,对test目录访问设置密码保护

1
2
3
4
5
6
7
8
9
10
11
<Directory E:/phpos/leapsoul/test/>

AuthType Basic

AuthName “WORKING CENTER”

AuthUserFile C:/.passwd

Require user www.leapsoul.cn

</Directory>

4、保存apache httpd.conf,并重启apache服务器。

上述配置只允许www.leapsoul.cn用户以正确的密码登陆才能访问leapsoul/test/目录

注意事项

1、设置密码保护的目录路径不要使用反斜杠,使用/

2、密码文件引用需要使用绝对路径

使用.htaccess配置文件对目录设置密码保护教程

1、使用apache htpasswd.exe创建密码文件,命令请看PHP推荐教程:apache htpasswd命令用法详解

2、创建.htaccess配置文件,你可以使用EditPlus新建文件并保存为.htaccess配置文件

3、在.htaccess配置文件中的写入配置信息,.htaccess配置文件的写法与apache配置文件有所不同,没有Directory

1
2
3
4
5
6
7
AuthType Basic

AuthName “WORKING CENTER”

AuthUserFile C:/.passwd

Require user www.leapsoul.cn

4、保存.htaccess配置文件,并将.htaccess配置文件放置在需要设置密码保护的目录下,比如leapsoul/test/目录

上述.htaccess配置功能与第一种方法实现的功能是一样的。

你也可以在浏览器的URL框内以以下方式输入用户名和密码(未加密的)来直接进行访问:

1
http://username:password@www.yourwebsite.com/directory/

.htaccess配置注意事项

如何开启.htaccess配置功能?

除了和apache httpd.conf配置一样需要注意的那些问题之外,容易出现的一个错误是如果配置不正确,会出现.htaccess配置文件不起作用的问题,这是因为 apache AllowOverride指令,决定了你的.htaccess是否能正常开启并启用。从安全性考虑,apache httpd.conf配置文件中网站根目录的AllowOverride属性一般都配置成不允许任何Override ,即

1
2
3
4
5
<Directory />

AllowOverride None

</Directory>

当AllowOverride 设置为 None 时,.htaccess 文件将被完全忽略。当此指令设置为 All 时,所有具有 “.htaccess” 作用域的指令都允许出现在 .htaccess 文件中。所以要使apache能够正常的读取.htaccess文件的内容,开启.htaccess功能,使.htaccess配置文件中的设置起作用, 就必须对网站根目录或者.htaccess 所在目录进行配置,将AllowOverride None更改为AllowOverride All。

如果你是虚拟主机用户在使用.htaccess配置文件对目录设置密码保护时,请咨询你的主机商是否允许启用.htaccess,并告知网站目录的绝对路径。

apache和.htaccess配置选项说明

AuthName - 浏览器弹出登录框时显示的被保护的名字,可自行改动。

AuthType Basic - 认证的类型。

AuthUserFile - 指向apache htpasswd.exe生成的密码文件,必须是绝对路径

Require - 设置可以对被保护目录进行访问的用户。

require valid-user -就是指在 .passwd 中的任何一位用户都可以访问。

require user username 或 require user username1 username2 username3 - 指定.passwd中的特定的用户可以访问被保护的目录。

require group groupname - 指定用户组来访问被保护目录。

设置组的方法是再创建一个.htgroup配置文件:

groupname1: username1 username2 username3

groupname2: username1 username3 username4

再在apache httpd.conf配置文件或者.htaccess配置文件中添加:

AuthGroupFile C:/.htgroup

使用apache和htaccess对目录访问设置密码保护的效果

使用apache和htaccess对目录访问设置密码保护

使用apache和htaccess对目录访问设置密码保护

至此在本篇PHP教程中介绍使用apache和htaccess对目录设置密码保护配置方法就完成了,这两种方法对提升网站目录的安全性非常有用,特别是htaccess的安全性非常高,虚拟主机用户可以考虑使用。

本文固定链接: http://www.ccsbbs.com.cn/archives/6377.html | 极限手指

该日志由 极限手指 于2013年04月10日发表在 PHP 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: 使用apache和htaccess对目录访问设置密码保护配置教程 | 极限手指

使用apache和htaccess对目录访问设置密码保护配置教程:等您坐沙发呢!

发表评论

您必须 [ 登录 ] 才能发表留言!