此处用户认证的意思是:须要浏览器对用户进行认证,认证成功后用户才能浏览网站内容,php
使用场景1:对网站进行用户认证apache
一、在虚拟主机配置文件中加入如下内容;vim
<Directory /data/wwwroot/www.123.com>浏览器
AllowOverride AuthConfigcurl
AuthName "123.com user auth"ide
AuthType Basic测试
AuthUserFile /data/.htpasswd网站
require valid-userui
</Directory>搜索引擎
二、生成密码文件
# /usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd lijie
命令中的-c 表示建立,-m表示md5加密,/data/.htpasswd是密码文件所在路径,lijie是建立的用户名
随后系统两次提示输入密码,运行结果以下:
上图能够看到密码文件中出现了一行字符串,冒号左边是用户名,右边就是md5加密后的密码
咱们再建立一个用户
# /usr/local/apache2.4/bin/htpasswd -m /data/.htpasswd lj
此时命令中不须要-c建立的选项,能够看到密码文件中新增了用户lj的加密后的密码
三、从新加载配置
# /usr/local/apache2.4/bin/apachectl -t //检查语法
# /usr/local/apache2.4/bin/apachectl graceful //从新加载
四、绑定主机
# curl -x127.0.0.1:80 111.com
上图能够看到,此时提示401错误
咱们再来看下401是什么意思?
上图能够看到401提示须要作用户验证,
一样的咱们在浏览器打开的界面以下图:
出现上述现象输入用户名密码进行验证便可,Linux下用户名密码输入方式以下
上图输入用户名密码后能够看到状态码已经变成200 OK 表示认证成功
使用场景2:针对某个文件设置用户认证
一、须要加入的内容以下:
<FilesMatch admin.php>
AllowOverride AuthConfig
AuthName "123.com user auth"
AuthType Basic
AuthUserFile /data/.htpasswd
require valid-user
</FilesMatch>
其中admin.php就是表示当匹配到这个文件时就须要作用户验证
二、从新加载配置
# /usr/local/apache2.4/bin/apachectl -t //检查语法
# /usr/local/apache2.4/bin/apachectl graceful //从新加载
四、访问主机及123.php
新增文件123.php
访问主机# curl -x127.0.0.1:80 111.com -I
上图咱们发现访问主机不须要验证用户名和密码就能成功登陆
可是当咱们访问网站下的123.php页面时就提示401错误,
# curl -x127.0.0.1:80 111.com/123.php -I
这时就须要进行用户密码验证,以下
也叫域名重定向
使用场景:新旧域名的切换时,老用户的习惯保留,网站的SEO排名,若是有两个域名网站内容同样的话,搜索引擎会认为新的域名是冒牌货,而把较高的权重给旧域名,可是咱们想使用新域名的话,就须要作一个域名重定向跳转,而且给一个永久跳转的状态码301,这时搜索引擎就会认为旧域名不用了,而降下就域名的权重,将全部的权重给新域名
咱们要作的就是配置301跳转
一、编辑虚拟主机配置文件
加入如下内容:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} !^111.COM$
RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L]
</IfModule>
命令中301表示永久重定向,另外有一个状态码302表示临时重定向
二、从新加载配置文件
# /usr/local/apache2.4/bin/apachectl -t //检查语法
# /usr/local/apache2.4/bin/apachectl graceful //从新加载
三、检测apache是否加载重定向模块rewrite
# /usr/local/apache2.4/bin/apachectl -M |grep rewrite //检测是否加载
若是没有加载,就须要手动去配置文件中加载
# vi /usr/local/apache2.4/conf/httpd.conf //编辑配置文件
搜索rewrite
去掉此行行首的#号
再次检查rewrite模块是否加载
上图表示加载成功
四、测试域名跳转是否成功
测试域名跳转成功与否 1# curl -x192.168.31.157:80 www.111.com -I
测试跳转URL 2# curl -x192.168.31.157:80 www.111.com
测试跳转URL 3# curl -x192.168.31.157:80 www.111.com/213fdsffg
上面 测试URL不存在,但调转是成功了的,只是咱们没有写这个页面而已,提示的状态码是404,以下
换一个已经写好的页面,则提示200 OK ,说明域名跳转成功
状态码403表示拒绝访问,当httpd配置文件中的Require all granted被修改成Require all denied时就会出现此状态提示
日志目录/usr/local/apache2.4/logs
查看域名跳转实验时候的logs以下
上图中以HEAD开头的表示是使用命令 curl 时留下的记录,以GET开头的表示的是加上-I时留下的记录
但这个日志格式比较简单,咱们能够先在主配置文件中查看下日志格式
# vim /usr/local/apache2.4/conf/httpd.conf
修改下图的LogFormat,框中引号内的参数,给咱们提供了common 和 combined两种格式,默认使用的是common格式,咱们在上图中看到的格式就是由下图引号内的参数决定的
h : 来源IP
l:用户
u:用户
t: 时间
r:状态码
b:大小
User Agent :用户代理,能够是浏览器作代理或者使用curl命令访问到网站,返回的内容是浏览器给的字段或curl相关给的字段
Referer:记录浏览器上一次访问的页面,表示用户是从哪一个页面跳转过来的
接下来咱们在虚拟主机配置文件中修改日志格式
修改前:
修改后:
修改为功后从新加载虚拟主机配置文件,再来访问这个主机:
多访问几回后,咱们再来查看日志
# /usr/local/apache2.4/logs/111.com/access_log
推荐连接
apache虚拟主机开启php的短标签 http://ask.apelearn.com/question/5370