一、用户认证
1、作用:对一些比较重要的站点增加用户认证,目的是保证安全。缺点:用户体验不好
2、编辑虚拟主机内容如下:
<VirtualHost *:80>
DocumentRoot "/data/testphp/111.com
ServerName 111.com
ServerAlias www.example.com
<Directory /data/testphp/111.com>
AllowOverride AuthConfig
AuthName "111.com user auth"
AuthType Basic
AuthUserFile /data/.htpasswd
require valid-user
</Directory>
</VirtualHost>
3、创建密码文件和指定用户
/usr/local/apache2/bin/htpasswd -c -m /data/.htpasswd wang
-c 创建 -m MD5加密 最后指定用户
4、测试
1)先重新加载配置文件。
/usr/local/apache2/bin/apachectl -t
/usr/local/apache2/bin/apachectl graceful
2)首先需要在本机hosts指定域名 以管理员身份打开 C:\Windows\System32\drivers\etc\hosts,添加如下内容:
192.168.134.150 www.aaa.com www.123.com
192.168.134.150 111.com www.example.com
3)浏览器访问:
4) curl 访问 ,我们看到如下401报错,这是因为没有输入用户名和密码。
curl -x127.0.0.1:80 -uwang:qwerty 111.com
-u 指定用户和密码 ,如下登录成功。
5、针对单个单个文件进行认证
1)编辑虚拟配置文件:
<VirtualHost *:80>
DocumentRoot "/data/testphp/111.com
ServerName 111.com
ServerAlias www.example.com
# <Directory /data/testphp/111.com>
<FilesMatch 123.php>
AllowOverride AuthConfig
AuthName "111.com user auth"
AuthType Basic
AuthUserFile /data/.htpasswd
require valid-user
</FilesMatch>
# </Directory>
</VirtualHost>
2)创建相应的目录文件与内容
3)测试
[root@wangbing 111.com]# curl -x127.0.0.1:80 111.com
111 OK[root@wangbing 111.com]#
此时我们发现不用加密码也能访问111.com了
但是访问123.php,报401的错,那是因为给123.php设置密码了
加上用户名和密码后OK了。
[root@wangbing 111.com]# curl -x127.0.0.1:80 -uwang:qwerty 111.com/123.php
123 ok[root@wangbing 111.com]#
二、域名跳转
1、作用: 一个网站有可能有多个域名;启用了新域名,老域名还要使用,所以需要跳转(涉及seo排名)
2、编辑配置文件:
<VirtualHost *:80>
DocumentRoot "/data/testphp/111.com
ServerName 111.com
ServerAlias www.example.com
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} !^111.com$
RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L] #R=301 永久重定向 R=302 临时重定向 L 跳转一次就结束
</IfModule>
</VirtualHost>
3、加载rewrite模块
编辑 /usr/local/apache2/conf/httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so 去掉该行前面的#
4、测试
可以看到跳转到111.com了
[root@wangbing 111.com]# curl -x127.0.0.1:80 311.com
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://111.com/">here</a>.</p>
</body></html>
[root@wangbing 111.com]#
如下图,abc.php其实不存在,但还是跳转为111.com/abc.php,但当我们以111.com/abc.php访问时,他会提示你不存在该链接。
三、配置访问日志
1、作用:记录访问情况,在网站异常时帮助我们定位分析问题。
2、在主配置文件/usr/local/apache2/conf/httpd.conf中定义访问日志的格式,有如下两个,一般使用第一个。
3、编辑虚拟配置文件
<VirtualHost *:80>
DocumentRoot "/data/testphp/111.com
ServerName 111.com
ServerAlias www.example.com 2111.com.cn
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} !^111.com$
RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L]
</IfModule>
ErrorLog "logs/111.com-error_log"
CustomLog "logs/111.com-access_log" combined
</VirtualHost>
4、使用 curl 访问
5、浏览器访问:我们能看到访问用户wang ,浏览器等信息Chrome/56.0.2924.87 Safari/537.36 ,还有referer信息http://ask.apelearn.com/question/17574等。