一、用户认证

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等。

 

posted on 2018-03-02 22:56  天梭  阅读(292)  评论(0编辑  收藏  举报