options 可以用来配置一些特定的特性,在一些指定的文件夹里,而这些特性包括很多
比如 followsymlinks,是否支持软链接的意思,默认是支持的,所以之前可以用软链接访问
还原成默认,谁都能访问了
刚才主站点下有个软连接
现在是可以访问的
其实是可以修正的,options可以设置某个目录下的文件是否能被访问
减号代表去掉这个功能,重启服务
现在就不能被访问了
indexes默认很关键,加入只有index2,没有index
这时候看到的是forbidden,拒绝
如果现在想让它显示目录列表,有哪些文件
如果当前页面没有主页面文件,就把文件列表显示出来
但是这样并不安全,但有的时候故意这么干,
类似阿里云
默认是不具备indexes功能的
这样写也可以,有减号必须填加号,不能分开,要么都有,要么都没有
allowoverride 覆盖设置的意思,主要和目录下所在的文件相关,在目录下创建.htaccess文件,在这个文件添加一些选项,比如下面的
内容加到.htaccess,那么是什么生效,是原来配置文件里的生效还是.htaccess,allowoverride可以定义,将来在.htaccess里哪些代码是生效的,哪些是无效的
.htaccess等于是子配置文件,系统一般受不让访问的
所以刚才设置的某些项,可以用.htacces来实现
重启服务查看是否有效,需要加上allowoverride定义哪些代码在.htaccess是有效的
allowoverride是当前的文件夹里,文件的内容全都有效
就可以了
ALL是所有,但是万一只floowsymilinks有效
但是.htacces有两项
发现500错误,不能这么加
403报错是没有权限
none就代表这个文件里所有的设置都无效
将来有些特定的选项和服务是可以放在里面的,比如关于身份验证,可以放到主配置文件中
也可以放到、
这个文件放在这个目录是只影响这个目录,相当于针对这个目录的子配置文件
在web服务器中有两种日志,一种是错误日志,再一种是访问日志
语句上有错误就会记录下来,关于错误日志和访问日志有单独的定义
错误日志在哪,什么级别才记录日志,警报级别warn,只要比warn高的,都记录下来
访问日志
是个软链接
在日志记录中,有一项很重要的内容,就是格式,logformat,将来记录日志的话,用什么格式记录
系统定义了好几种格式,现在用的是combined,也可以自己定义
查看符号说明
**%h 远程主机IP地址,%l登录信息,%u也是登录信息,用户名验证的,(现在l,u这两项都没有验证所以是空的–),%t是时间,而且默认的格式是GMT,年月日,有点不好就是带英文的,将来处理比较难处理,所以就可以修改下格式
%r第一行的请求(模拟telnet的时候,第一行敲的GET 第一行的请求)
**
Referer是{},花括号说的就是发送http请求的首部的一个变量值,头部信息都是key value值,这个就相当于key,rerferer就是上一次访问的网站是从哪来的,你是从哪个地方跳转过来的
模拟测试下referer、
改成跳转到test2
修改test2
都可以单独访问
点击可以跳转至test2
打开日志,现在referer还是空的
点击跳转至test2,查看日志
这就是referer,是从哪个页面跳转访问的referer
referer可以分析访问你网站的人都是从哪里来的,如果是空,说明别人都知道你网站,直接访问的,如果是referer,就可以看看他们都是从哪来的。(是广告,还是盗链),如果是盗链,将来就可以定义安全策略去拒绝它
浏览器类型
网上有很多爬虫,爬你页面上的资料,如果是一些特定的软件爬虫,从浏览器类型可以体现出来的,将来就可以在网站上设置安全策略,只要是这种爬虫就可以拒绝访问,但是浏览器类型是可以仿的
curl命令自己就可以伪造浏览器类型
-A就可以伪造一个不存在的浏览器
203就是数据包大小,只有203字节
字符集一般来讲现在UTF-8,GB2312中文的,就说明这个网站里就不能带有日文韩文其他类的语言
可以查下其他网站用的字符集
看不到说明有些网站把一些字段给屏蔽了,看不到
国内有些网站用的是GB2312,301重定向了
没有主页面被拒绝了
默认UTF-8
在页面访问这个文件夹显示的是真实路径
有时候不安全,不想暴露真实的名称,当你访问一个路径时,把你指向某一个路径下
当访问某一个路径,url的时候,需要跳转到football(指定的文件夹里)
早期网站刚搭建起来,比如大众点评,下面每个省都有网站ZZ,可能不止郑州,就需要用别名跳转到真实的指定的文件里面去
现在下面并没有zz子文件夹,也不需要有
拒绝访问,是因为我们之前没有在配置文件里设置权限,没有针对那个文件夹设置权限
就可以了
在一些运维工作,有时候有一些自动化运维的管理,不是对外发布的,管理站点就希望只有特定的人才有权限看,这时候就可以用用户名密码做验证的方式实现
验证可以有几种方式,1.明文
2.digest 摘要验证
一般用明文,实现如下
string 加上描述文字,
用户名密码从哪来,存放在专门的文件中/path/httpd_user_passwd_file(这个文件需要你手动创建)可以用htpasswd工具创建,这个命令可以创建放用户名密码的文本文件,第一次创建必须加-C
.加.可以隐藏起来,文件名无所谓,指定用户名,输入密码就生成了
、
也可以改变加密算法
默认用的是-m
用-s试试
现在就添加了三个用户,那么到底谁能访问,
require user 跟上你希望访问的用户名
创建个页面,假设是给特定的人才能访问
重启服务
打开日志
没有验证是因为加了所有权限的原因
就需要验证
换一个浏览器
验证类型
valid-user 所有有效用户
可以访问了
查看require指令
可以登录查看
试试两个用户
重新设置 用户
、
现在有两个账号
重启服务
成功了,可能就是哪一行有特殊符号
换一种方法实现
j接着到需要身份验证的目录下去创建.htaccess
在admin目录里有一些语法是生效的,authconfig的语法生效
成功,代表两种实现方法都可以
直接访问.htaccess文件是访问不了的,因为有权限控制
一种是基于ip地址控制,一种是基于用户名密码控制
所以还有一项与设置有关 satisfy ALL (代表,IP地址和用户密码都验证了才可以通过)
ANY就是二选一
查看刚才访问日志、
401就是身份认证
身份验证要用到401,301是跳转