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

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

我们有时候访问某些网站的时候,要求输入用户名和密码才能访问。这是为了保护隐私,只让经过许可的人访问。

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

方法一:apache httpd.conf配置文件对目录设置密码保护教程(下面两个步骤)


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

apache htpasswd命令用法实例

1、如何利用htpasswd命令添加用户?

在apache安装目录bin下找到htpasswd

复制代码
[root@fabao365 /home/like]#usr/local/apache/bin/htpasswd -bc .passwd like like123456

  在/home/like目录下生成一个.passwd文件,用户名like,密码:like123456,默认采用MD5加密方式

2、如何在原有密码文件中增加下一个用户?

  htpasswd -b .passwd leapsoul phpdev --------用户名为:leapsoul 密码为: phpdev

  去掉c选项,即可在第一个用户之后添加第二个用户,依此类推

3、如何不更新密码文件,只显示加密后的用户名和密码?

复制代码
htpasswd -nb leapsoul phpdev

  不更新.passwd文件,只在屏幕上输出用户名和经过加密后的密码

4、如何利用htpasswd命令删除用户名和密码?

复制代码
htpasswd -D .passwd like #删除用户like

5、如何利用htpasswd命令修改密码?

复制代码
  htpasswd -D .passwd like #先删除like
  htpasswd -b .passwd like like789 #再重新创建用户like,密码设为like789

  即先使用htpasswd删除命令删除指定用户,再利用htpasswd添加用户命令创建用户即可实现修改密码的功能。

  至此,apache htpasswd命令的具体介绍和使用方法就介绍完了。


二、配置apache文件:

  1、打开apache 配置文件

  2、找到...块,对test目录访问设置密码保护

复制代码
#vi /usr/local/apache/conf/extra/httpd-userdir.conf 
<Directory /data/www/www_fabao365_sys/>            -----------------这里是需要保护的目录
AuthType Basic
AuthName Authorize
AuthUserFile /home/fabxxxxxxxxxxxx/.htpass               绝对路径
require user hlgboboXXXXX                                       --------只有用户hlgboboXXXXX  才能访问
</Directory>

3、保存,并重启apache服务器。

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

注意事项

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

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

注:我们公司网站就是采用上述认证方式!

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

方法二:使用.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配置注意事项

  如何开启.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。

  如果你是虚拟主机用户在使用.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

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

相关推荐
源图客4 天前
Apache Flink 2.3.0(最新版本)
大数据·flink·apache
代立冬7 天前
927 个 PR:Apache SeaTunnel 3.0.0 正式发布!AI 时代,数据集成正在迎来新的可能
人工智能·apache
zhongben_keji8 天前
家政小程序开发全解:经营模式、品类矩阵、派单约束与信用核验
线性代数·矩阵·apache
weixin_177297220699 天前
二手旧物回收小程序先要解决的不是下单,是“上门之后价格变了怎么办“
小程序·apache
努力变的更好9 天前
H5与小程序之间的回调
前端·小程序·apache
十碗饭吃不饱11 天前
Apache POI 踩坑:setFontFamily 二次设置字体不生效、样式残留问题深度解析
java·word·apache
心随_风动12 天前
Ubuntu系统安装Apache服务教程
linux·ubuntu·apache
ly768914 天前
Kafka 消费者重试与死信:Spring for Apache Kafka 的边界设计
spring·kafka·apache·并发消费·消费者重试·死信主题·位移提交
HoneyMoose14 天前
Ubuntu Apache 配置多站点提示 SSL 错误
ubuntu·apache·ssl
骑着蜗牛撵大象32714 天前
一套引擎撑起树表双模型:Apache IoTDB 2.0 与 TsFile 的选型答卷
apache·时序数据库·iotdb·tsfile·树模型·表模型