1.编辑虚拟主机配置文件:vim /usr/local/apache2.4/conf/extra/httpd-vhosts.confphp
<VirtualHost *:80> DocumentRoot "/data/wwwroot/111.com" ServerName 111.com ServerAlias www.example.com <Directory /data/wwwroot/111.com> #指定认证的目录 Allowoverride AuthConfig #该行至关于打开用户认证的开关 AuthName "111.com user auth" #自定义认证的名字,做用不大 AuthType Basic #认证类型,通常为basic AuthUserFile /data/.htpasswd #指定密码文件所在位置(须要手动添加) require valid-user #设定须要认证的用户为“AuthUserFile”中定义的全部可用用户 </Directory> ErrorLog "logs/111.com-error_log" CustomLog "logs/111.com-access_log" common </VirtualHost>
2.建立“httpd-vhosts.conf”中指定的密码文件:/usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd zjyhtml
#在“/data/.htpasswd”为用户zjy(自动建立)建立一个使用MD5算法加密的密码文件;-c建立,第一次建立才用;-mMD5算法linux
3.从新加载配置:算法
/usr/local/apache2.4/bin/apachectl -tapache
/usr/local/apache2.4/bin/apachectl gracefulvim
4.测试: curl -x192.168.8.131:80 111.com -I浏览器
[root@adailinux ~]# curl -x192.168.8.131:80 111.com -I HTTP/1.1 401 Unauthorized Date: Mon, 31 Jul 2017 01:42:50 GMT Server: Apache/2.4.27 (Unix) PHP/5.6.30 WWW-Authenticate: Basic realm="111.com user auth" Content-Type: text/html; charset=iso-8859-1
提示状态码为401,表示当前访问的内容须要进行用户认证。bash
curl -x192.168.8.131:80 -uzjy:123456 111.com -I #加-u[用户名]:[密码] 进行使用用户密码登陆服务器
[root@adailinux ~]# curl -x192.168.8.131:80 -uzjy:123456 111.com -I HTTP/1.1 200 OK Date: Mon, 31 Jul 2017 02:18:21 GMT Server: Apache/2.4.27 (Unix) PHP/5.6.30 X-Powered-By: PHP/5.6.30 Content-Type: text/html; charset=UTF-8
提示状态码200,即访问成功curl
1.编辑配置文件:/usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80> DocumentRoot "/data/wwwroot/111.com" ServerName 111.com ServerAlias www.example.com #<Directory /data/wwwroot/111.com> <FilesMatch 123.php> Allowoverride AuthConfig AuthName "111.com user auth" AuthType Basic AuthUserFile /data/.htpasswd require valid-user </FilesMatch> #</Directory> ErrorLog "logs/111.com-error_log" CustomLog "logs/111.com-access_log" common </VirtualHost>
说明: 注释掉< Directory >,取消对目录设定的用户认证,更改成< FilesMatch>,即对文件设定用户认证。
使用效果不一样:
301重定向是永久的重定向,搜索引擎在抓取新内容的同时也将旧的网址替换为重定向以后的网址。
302跳转是暂时的跳转,搜索引擎会抓取新的内容而保留旧的网址。由于服务器返回302代码,搜索引擎认为新的网址只是暂时的。
1.修改虚拟主机配置文件:/usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80> DocumentRoot "/data/wwwroot/111.com" ServerName 111.com ServerAlias www.example.com <IfModule mod_rewrite.c> #须要mod_rewrite的支持 RewriteEngine on #开启rewrite功能 RewriteCond %{HTTP_HOST} !^111.com$ #Cond=condition,定义rewrite条件:全部非111.com的主机名(域名) RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L] #定义rewrite规则:当知足上面条件时才执行当前规则,即跳转到111.com。 </IfModule> ErrorLog "logs/111.com-error_log" CustomLog "logs/111.com-access_log" common </VirtualHost>
2.从新加载配置文件并检查是否加载rewrite模块:
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful
/usr/local/apache2.4/bin/apachectl -M |grep rewrite
若没有加载,则执行如下:
vim /usr/local/apache2.4/conf/httpd.conf
搜rewrite,将“#”号去掉
3.测试:curl -x192.168.8.131:80 www.example.com -I
[root@adailinux ~]# curl -x192.168.8.131:80 www.example.com -I HTTP/1.1 301 Moved Permanently Date: Mon, 31 Jul 2017 07:17:37 GMT Server: Apache/2.4.27 (Unix) PHP/5.6.30 Location: http://111.com/ Content-Type: text/html; charset=iso-8859-1
状态码为301,即设定了域名永久跳转。用浏览器访问“www.example.com”会直接跳转到“111.com”。
日志路径:/usr/local/apache2.4/logs
自带日志格式:在主配置文件中有定义
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
#h表示host来源IP,l表示login用户,u表示user用户密码,t表示time时间,r表示request(行为),s表示status状态码,b表示byte大小 #user-agent:用户代理 #referer:跳转到当前位置的上一个网址(即:提供当前IP的网站)
有combine和common两种格式,默认使用common模式。
1.更改虚拟主机配置文件:/usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80> DocumentRoot "/data/wwwroot/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] </IfModule> ErrorLog "logs/111.com-error_log" CustomLog "logs/111.com-access_log" combined </VirtualHost>
将日志文件后面原有 common改成combined.
2.从新加载配置:
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful