apache .htaccess 的应用

本文涉及的产品
访问控制,不限时长
简介: 一.基本的Apache用户认证方法:  若对某一目录下的文件如/home/ftp/pub需要做到用户认证,则在httpd.

一.基本的Apache用户认证方法: 

若对某一目录下的文件如/home/ftp/pub需要做到用户认证,则在httpd.conf 
中加入下面的行 
<> 
options indexes followsymlinks 
allowoverride authconfig 
order allow,deny 
allow from all 

<> 
用在目录/home/ftp/pub下放文件.htaccess,内容如下: 
authname "shared files" 
authtype basic 
authuserfile /etc/.passwd 
require valid-user 

用随Apache来的程序htpasswd 生成文件/etc/.passwd,每行一个用户名:密码 

首先用htpasswd创建一个密码文件:比如文件名叫做my.passwd
/home/apache/bin/htpasswd -c -b my.passwd myusername mypassword
如果增加帐号:
/home/apache/bin/htpasswd -b my.passwd anotherusername anotherpassword

将my.passwd上传到一个非发布路径下。
比如你的物理WEB根目录的上一级
/home/apache/conf/my.passwd

创建 .htaccess
AuthName "My Authorization Directory"
AuthType Basic
AuthUserFile /home/apache/conf/my.passwd
Require valid-user

将这个文件上传到你需要进行用户认证的目录:
/home/apache/htdocs/admin/.htaccess

这样这个目录的访问就需要认证了。

只要能提供正确的用户名和密码对,就允许登录访问,这是针对任何地址来的 
请求都要求提供用户名和密码认证。 

二.针对部分网段或地址要求认证。 

若公司LAN所在网段为192.168.0.0/24,且有一防火墙专线接入Internet, 
内部网卡的地址为192.168.0.1/32,则现在希望所有通过拨本地163通过 
防火墙上的apache反向代理向LAN上的另一WWW服务器访问时需要认证,而本地 
LAN上的用户不需认证。可以在httpd.conf中放入: 
〈Directory /home/ftp/pub> 
Options Indexes FollowSymLinks 
AllowOverride AuthConfig 
order deny,allow 
deny from 192.168.0.1 
〈/Directory> 

且在/home/ftp/pub/.htaccess中放入: 
AuthName "shared files" 
AuthType Basic 
AuthUserFile /etc/.passwd 
require valid-user 
satisfy any 

三.对同一目录及其下的子目录有不同的权限,仅某些人可以存取一目录下的 
子目录。 
如有一目录/home/ftp/pub/sales,有三个用户user1,user2,user3都需要用户名 
和密码进入/home/ftp/pub,但仅user1,user2能进入/home/ftp/pub/sales.则 
放下面的行到httpd.conf 

〈Directory /home/ftp/pub> 
Options Indexes 
AllowOverride AuthConfig 
order allow,deny 
allow from all 
〈/Directory> 

〈Directory /home/ftp/pub/sales> 
Options Indexes 
AllowOverride AuthConfig 
order allow,deny 
allow from all 
〈/Directory> 

且看/home/ftp/pub/.htaccess为: 
AuthName "shared files" 
AuthType Basic 
AuthUserFile /etc/.passwd 
require valid-user 

且看/home/ftp/pub/sales/.htaccess 
AuthName "shared files" 
AuthType Basic 
AuthUserFile /etc/.passwd 
AuthGroupFile /etc/.salesgroup 
require group manager 

且文件/etc/.passwd内容为: 
user1:passwd1 
user2:passwd2 
user3:passwd3 

且文件/etc/.salesgroup内容为: 
manager: user1 user2  
 

在Apache中使用.htaccess配置文件"

在配置Apache时,除了可以在主配置文件(http.conf)中配置访问控制之外,还可以使用.htaccess 文件配置对指定目录的访问控制。使用.htaccess文件可以改变主配置文件中的配置,但是它只能设置对指定目录的访问控制,这个目录就是. htaccess文件存放的目录。在一个目录下设置了.htaccess文件之后,当用户使用浏览器访问此目录时,Apache会读取该文件的配置来覆盖主配置文件(http.conf)的配置。

注意:
  1.修改.htaccess文件无需重新启动Apache服务器,而是立即生效。
  2.在可能的情况下应该尽量避免使用.htaccess文件,因为使用 .htaccess文件会降低服务器的运行性能。


何时使用.htaccess文件
   有如下两种情况需要使用.htaccess文件
    *在多个用户之间分割配置
    *想在不重新启动服务器的情况下改变服务器配置
  使用.htaccess文件必须经过两个配置步骤
    *首先在主配置文件中的启用并控制对.htaccess文件的使用
    *然后在需要覆盖主配置文件的目录下生成.htaccess文件
  在主配置文件中的启用并控制对.htaccess文件的使用
  1.设置文件名称
  必须保证在主配置文件中包含如下的配置语句:

AccessFileName .htaccess


  Order allow,deny
  Deny from all


2.控制在.htaccess文件中可以使用的指令组
  要控制在.htaccess文件中可以使用的指令组,需要在主配置文件中使用AllowOverride指令。下面列出了可以在AllowOverride指令所使用的指令组。

指令组 可用指令 说明
============================
AuthConfig

AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, Require

进行认证、授权以及安全的相关指令
=============================
FileInfo

DefaultType, ErrorDocument, ForceType, LanguagePriority, SetHandler, SetInputFilter, SetOutputFilter

控制文件处理方式的相关指令
=============================
Indexes

AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName

控制目录列表方式的相关指令
==============================
Limit

Allow,Deny,Order

进行目录访问控制的相关指令
==============================
Options

Options, XBitHack

启用不能在主配置文件中使用的各种选项
=============================
All

全部指令组

可以使用以上所有指令
=============================
None
禁止使用所有指令
禁止处理.htaccess文件
==============================


生成.htaccess文件
  当在主配置文件中配置了对.htaccess文件的启用和控制之后,接下来就可以在需要覆盖主配置文件的目录下生成.htaccess文件。.htaccess文件中可以使用的配置指令取决于主配置文件中AllowOverride指令的设置。
  使用.htaccess文件举例
  下面举一个简单的例子说明.htaccess文件的使用。


//首先在文档根目录下生成一个private目录,并创建测试文件
# cd /var/www/html
# mkdir private
# cd private
# touch test
//修改配置前,在客户浏览器查看结果,如图1所示
//修改主配置文件
# vi /etc/httpd/conf/httpd.conf
//添加如下配置语句
<Directory "/var/www/html/private">
  AllowOverride Options
</Directory>
#
//重新启动httpd
# service httpd restart
//在/var/www/html/private目录下生成.htaccess文件
# vi /var/www/html/private/.htaccess
//添加如下配置语句
Options –Indexes
#
//在客户浏览器中查看结果,如图2所示
//通过查看配置结果,可以证明.htaccess已经生效。
//即对private目录的访问不生成文件列表

 

相关实践学习
消息队列+Serverless+Tablestore:实现高弹性的电商订单系统
基于消息队列以及函数计算,快速部署一个高弹性的商品订单系统,能够应对抢购场景下的高并发情况。
云安全基础课 - 访问控制概述
课程大纲 课程目标和内容介绍视频时长 访问控制概述视频时长 身份标识和认证技术视频时长 授权机制视频时长 访问控制的常见攻击视频时长
目录
相关文章
|
6月前
|
存储 机器学习/深度学习 Apache
如何将Apache Hudi应用于机器学习
如何将Apache Hudi应用于机器学习
59 0
|
17天前
|
消息中间件 数据挖掘 Kafka
Apache Kafka流处理实战:构建实时数据分析应用
【10月更文挑战第24天】在当今这个数据爆炸的时代,能够快速准确地处理实时数据变得尤为重要。无论是金融交易监控、网络行为分析还是物联网设备的数据收集,实时数据处理技术都是不可或缺的一部分。Apache Kafka作为一款高性能的消息队列系统,不仅支持传统的消息传递模式,还提供了强大的流处理能力,能够帮助开发者构建高效、可扩展的实时数据分析应用。
64 5
|
2月前
|
安全 网络协议 应用服务中间件
AJP Connector:深入解析及在Apache HTTP Server中的应用
【9月更文挑战第6天】在Java Web应用开发中,Tomcat作为广泛使用的Servlet容器,经常与Apache HTTP Server结合使用,以提供高效、稳定的Web服务。而AJP Connector(Apache JServ Protocol Connector)作为连接Tomcat和Apache HTTP Server的重要桥梁,扮演着至关重要的角色
74 2
|
1月前
|
存储 分布式计算 druid
大数据-149 Apache Druid 基本介绍 技术特点 应用场景
大数据-149 Apache Druid 基本介绍 技术特点 应用场景
56 1
大数据-149 Apache Druid 基本介绍 技术特点 应用场景
|
2月前
|
Apache
多应用模式下,忽略项目的入口文件,重写Apache规则
本文介绍了在多应用模式下,如何通过编辑Apache的.htaccess文件来重写URL规则,从而实现忽略项目入口文件index.php进行访问的方法。
|
4月前
|
存储 运维 关系型数据库
探索 Apache Paimon 在阿里智能引擎的应用场景
本文整理自Apache Yarn && Flink Contributor,阿里巴巴智能引擎事业部技术专家王伟骏(鸿历)老师在 5月16日 Streaming Lakehouse Meetup · Online 上的分享。
25064 34
探索 Apache Paimon 在阿里智能引擎的应用场景
|
3月前
|
分布式计算 大数据 数据处理
Apache Spark的应用与优势:解锁大数据处理的无限潜能
【8月更文挑战第23天】Apache Spark以其卓越的性能、易用性、通用性、弹性与可扩展性以及丰富的生态系统,在大数据处理领域展现出了强大的竞争力和广泛的应用前景。随着大数据技术的不断发展和普及,Spark必将成为企业实现数字化转型和业务创新的重要工具。未来,我们有理由相信,Spark将继续引领大数据处理技术的发展潮流,为企业创造更大的价值。
|
4月前
|
存储 缓存 Apache
Apache Paimon 在蚂蚁的应用
本文整理自 Apache Paimon Committer 闵文俊老师在5月16日 Streaming Lakehouse Meetup · Online 上的分享。Apache Paimon 是一种实时数据湖格式,设计用于流批一体处理,支持实时更新和OLAP查询。它采用LSM Tree结构,提供多种Changelog Producer和Merge Engine,支持高效的数据合并。Paimon适用于流读、批读及时间旅行查询,与多种查询引擎兼容。在蚂蚁集团的应用中,Paimon降低了资源开销,提升了查询性能,简化了研发流程,特别是在去重、核对场景和离线查询加速方面表现突出。
577 7
Apache Paimon 在蚂蚁的应用
|
3月前
|
分布式计算 Hadoop 大数据
大数据处理框架在零售业的应用:Apache Hadoop与Apache Spark
【8月更文挑战第20天】Apache Hadoop和Apache Spark为处理海量零售户数据提供了强大的支持
63 0
|
3月前
|
存储 Ubuntu 应用服务中间件
如何在 Ubuntu 14.04 上使用 Passenger 和 Apache 部署 Rails 应用
如何在 Ubuntu 14.04 上使用 Passenger 和 Apache 部署 Rails 应用
26 0

推荐镜像

更多