通过Apache配置可以限制用户对目录的访问,会弹出像phpadmin一样的登陆框。

===========================================================

1)建立需要保护的目录

①在/usr/local/apache2/htdocs/下建立目录,然后保护,或者②。

②使用别名(httpd-autoindex.php),在系统位置建立目录,然后保护。

在httpd-autoindex.php文件中建立别名目录:

Alias /soft/  "/share/soft"      <Directory "/share/soft/">  Options Indexes FollowSymLinksAllowOverride NoneOrder allow,denyAllow from all
</Directory>

2)修改配置文件的AllowOverride,允许.htaccess权限文件生效

<Directory "/share/soft/"> Options Indexes FollowSymLinksAllowOverride All    #开启权限认证文件.htaccessOrder allow,denyAllow from all
</Directory>

 

3)在指定目录建立权限文件

cd  /share/soft

vim  .htaccess

#加入下边的四句话(不区分大小写)。
AuthName "input your pwd"        #提示信息,会显示在弹出的密码框中,可以修改。
AuthType basic                   #加密类型
AuthUserFile /share/soft/apache.passwd   #密码文件,文件名和位置自定义。(最好不要定义在soft/目录下,因为 “Options Indexes”,会看到密码文件)require valid-user               #允许密码文件中所有用户访问

4)建立密码文件,加入允许访问的用户。

/usr/local/apache2/bin/htpasswd  -c  /share/soft/apache.passwd  test1
//此命令后会提示输入密码,-c表示建立密码文件,只有添加第一个用户时,才能-c//再添加用户用-m
/usr/local/apache2/bin/htpasswd  -m  /share/soft/apache.passwd  test2

访问www.xxx.com/soft/时会提示:

5)不通过.htaccess权限文件配置,即直接在配置文件中配置权限也可以,就省略了3步,修改2步如下

<Directory "/share/soft/">Options Indexes Includes FollowSymLinks   Order allow,deny   Allow from allAllowOverride NoneAuthUserFile  /usr/share/monitorix/.passwd  #就是把这四句话直接加到下边AuthName "input your pwd"AuthType BasicRequire valid-user
</Directory>

6)需要验证的页面通过curl抓取

 //虚拟机地址,这里url直接写虚拟机配置的host域名会导致curl报错,找不到host。
//需要先写IP,然后在设置一个Host选项
$url = 'http://192.168.31.174:80';
$param = array('content'=>'fdipzone blog');  //post的数据$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($param));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_HTTPHEADER,array("Host: kwht.com")); //这里制定host名称
curl_setopt($ch, CURLOPT_USERPWD, 'asd:asd'); // http auth
$ret = curl_exec($ch);
if (false === $ret) {echo "curl_error".curl_error($ch);}
$retinfo = curl_getinfo($ch);
curl_close($ch);  if($retinfo['http_code']==200){  $data = json_decode($ret, true);  print_r($data);
}else{  echo 'POST Fail';
} 

7)不通过修改配置和文件+生成密码文件的方式配置

服务端可以通过判断$_SERVER['PHP_AUTH_USER'],$_SERVER['PHP_AUTH_PW']验证账号和密码

把下边的代码加入到index.php,可以不用修改配置文件也不用生成密码文件而是通过PHP提供的$_SERVER变量来验证

<?php
if(!isset($_SERVER['PHP_AUTH_USER']))
{ header('WWW-Authenticate: Basic realm="localhost"'); //头部返回这行就会弹出登陆框header("HTTP/1.0 401 Unauthorized"); exit;
}else{ if (($_SERVER['PHP_AUTH_USER']!= "asd" || $_SERVER['PHP_AUTH_PW']!="asd")) {header('WWW-Authenticate: Basic realm="localhost"');header("HTTP/1.0 401 Unauthorized");exit;}
}
//验证通过才到这里来
$content = isset($_POST['content'])? $_POST['content'] : '';
header('content-type:application/json');
echo json_encode(array('content'=>$content));
?>

Apache配置--用户认证(针对目录访问)-update2015-05-02相关推荐

  1. apache 建立用户认证

    apache 建立用户认证 1.在配置虚拟目录的基础上 2.步骤 (1)建立虚拟主机,并建立虚拟目录  虚拟目录的内容可由Apache的配置文件中模版块复制而来如上图所示        (2)在虚拟主 ...

  2. 4.36域名重定向4.37用户认证4.38Nginx访问日志4.39日志不记录静态文件4.40日志切割...

    2019独角兽企业重金招聘Python工程师标准>>> 域名重定向 用户认证 Nginx访问日志 日志不记录静态文件 日志切割 域名重定向 配置第二个域名: vi /etc/ngin ...

  3. Apache(httpd)配置--用户认证,域名跳转和访问日志配置

    一.用户认证 用户认证功能就是在用户访问网站的时候,需要输入用户名密码才能进行访问.一些比较好总要的站点和网站后台都会加上用户认证,以保证安全. 实例:下面对zlinux.com站点来做一个全站的用户 ...

  4. 笔记12(36-40)域名重定向,用户认证,nginx访问日志,日志切割

    学习笔记 域名重定向 配置第二个域名: vi /etc/nginx/conf.d/blog.aminglinux.cc.conf 在server_name 那一行的域名后面加一个域名,空格作为分隔 n ...

  5. Apache虚拟主机VirtualHost的目录访问权限

    我的Apache默认的虚拟主机目录为"D:\Program Files\Zend\Apache2\htdocsApache",当添加一个新的虚拟主机VirtualHost的根目录设 ...

  6. nginx配置只开放指定目录访问

    众所周知tp5是单一入口文件, 项目只开放这个文件(可能还需要开放存放css,js,图片等静态资源目录)访问权限这样能提高项目的安全性.  假设有个tp项目, 入口文件index.php在根目录下, ...

  7. Apache 配置 Basic 认证

    /** 环境:WAMP( Windows7 + WampServer2.2(Apache 2.2.21)) */ 配置过程: ① 生成用户文件,文件路径可以使用绝对路径,也可以使用相对路径 进入 ap ...

  8. 服务器Apache配置以及改变工作目录

    Apache安装成功 Apache的配置主要集中在httpd.conf文件,它位于你的安装目录,比如:我安装在 用编辑器打开httpd.conf文件,先来查找到如下这一行:#ServerName 我们 ...

  9. apache配置证书后 tomcat无法访问_给你的项目配置个https吧

    1.申请证书 这里我选择的是阿里云的个人免费的证书 因为使用的是内置的Tomcat,所以下载Tomcat类型的 2.配置项目 将证书XXXX.pfx文件放到项目的resources目录,接着修改app ...

最新文章

  1. 运用shell,python自动下载linux系统运维
  2. Solr分组聚合查询之Group
  3. python slice类型_复合类型Slice python中的list
  4. cad pu插件下载lisp_CAD自动编号lisp插件下载
  5. python给动态变量赋值_python 动态的定义变量名,并给其赋值
  6. python语言中浮点数_在Python中截断浮点数
  7. java执行Sql脚本
  8. Selenium+JAVA淘宝登录、商品搜索、添加收货地址,提交订单、付款流程(UI)
  9. Linux自学之旅-基础命令(Ext4文件系统)
  10. masm32 汇编hello world程序
  11. python3操作win32com报错:AttributeError: Open.SaveAs 或者<COMObject Open>“, line 8, in SaveAs pywintypes.c
  12. Python最详细的 机器学习算法:逻辑回归的推导及实战 你值得拥有!
  13. 苹果双系统 计算机意外的重新启动,用Boot camp 安装双系统时突然重启,打… - Apple 社区...
  14. 32位linux升级64位系统下载地址,使用i386-32位Linux不能升级到amd64位,只能全新安装Linux-amd64版...
  15. java.lang.IllegalStateException: getOutputStream() has already been ca...
  16. VUE项目学习(一):搭建VUE前端项目
  17. 数字图像处理-第五周-理论课
  18. dy\ks直播间人气挂粉
  19. 【数据分析师】000-如何学习数据分析
  20. 华为云存储空间图库占比太大_用户数据安全存储 华为云空间这些功能大显身手...

热门文章

  1. C#多线程---Task实现异步
  2. 【Tools】Pycharm 2018专业版 linux安装教程 附2018专业版密钥
  3. 我怎么在AD里面找到已经改名的Administrator账户?
  4. swift禁用webView对H5中数字,链接,日期,地址,电话号码做解析
  5. 5月14日 游戏闯关,
  6. 使用VMware桥接模式组建局域网测试MSMQ(二)
  7. jQuery样式操作
  8. (转) GPG入门教程
  9. scanf printf sprintf fprintf
  10. datasg中的数据存储情况