**针对单个文件的用户认证
修改其配置文件 并取消掉先前Directory
写入完成以后 不加用户名密码会显示报错401
这样就完成了一个单个文件的用户认证
域名跳转
关于域名跳转可以理解成为一个域名重定向
例如 111.com跳转到www.111.com 配置如下
<IFModule mod_rewrite.c> //需要mod_rewrite模块支持
RewriteEngine on //打开rewirte模块
RewriteCond %{HTTP_HOST} !^www.111.com$ //定义条件 主机名不是www.111.com 则满足条件
RewriteRule ^/(.*)$ http://www.111.com/$1 [R=301,L] //定义规则 满足条件则执行 跳转
</IFModule>
这边设置的条件就是 只有不是以111开头的网址就跳转到www.111.com ,完成配置以后使用/usr/local/apache2.4/bin/apachectl -t 查看是否有报错信息
因为我们没有定义www.111.com这个目录所以我们先要创建 mkdir -p /usr/local/apache2.4/docs/www.111.com 在该目录下创建了两个文件 一个是index.html (www.111.com) 一个是123.php文件
cat index.html
www.111.com
cat 123.php
<?php
echo "www.111.com/123.php";
?>
httpd的主配置文件在/usr/localapache2.4/conf/httpd,conf中 把rewrite这个配置文件注释解除
使用/usr/localapache2.4/bin/apachectl -M | grep rewrite 查看是否有该模块
这边我们做一个测试 看看不是以111开头的网址就跳转到www.111.com
如果2111.con.cn后面还有一些子网页 他也会跳转到www.111.com下面的子网页中 301为状态码,它称作“永久重定向”(还有一种跳转用的状态码为302,叫作“临时重定向”)
在httpd的主配置文件中可以看到日志的格式 /usr/localapache2.4/conf/httpd.conf
%h为访问网站的IP;%l为远程登录名,这个字段基本上为“-”;%u为用户名,当使用用户认证时,这个字段为认证的用户名;%t为时间;%r为请求的动作(比如curl -I时就为HEADE);%s为请求的状态码,携程%>s为最后的状态码;%b为传输数据大小;%{Referer}i为referer信息(请求本次地址上一次的地址就为referer);%{User-Agent}i为浏览器标识,
在虚拟主机中查看发现日志文件存放在了logs/abc.com-access_log中
当我们使用cat命令查看时 可以发现里面有很多的日志文件 当我们使用curl命令的时候该文件里面就会更新出日志文件
访问日志不记录指定类型的文件
网站上大多元素是静态文件,如图片、css、js等,这些元素可以配置访问日志不记录
编辑配置文件vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
首先呢 在/usr/local/apache2.4/docs/www.111.com下创建images目录 准备好的linux.jpg移动到该目录
curl -xlocalhost:80 www.111.com/images/linux.jpg -I (使用该命令之前先SetEnVIF Request_URL “.*.jpgKaTeX parse error: Can't use function '\.' in math mode at position 90: …Request_URL ".*\̲.̲jpg” img解除注释
然后我们在使用curl -xlocalhost:80 www.111.com/images/linux.jpg -I
在去查看日志文件发现 日志中已经过滤掉了jpg文件
访问日志切割
日志一直记录总有一天会把内存占满 所有太有必要让他自动切割,并删除老的日志文件
虚拟主机配置如下
CustomLog “|/usr/local/apache2.4/bin/rotatelogs -l logs/www.111.com-access_%Y%m%d.log 86400” combined env=!img
这里的86400秒指的的24小时