vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //把123.com那个虚拟主机编辑成以下内容
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/www.123.com"
ServerName www.123.com
<Directory /data/wwwroot/www.123.com> //指定认证的目录
AllowOverride AuthConfig //这个至关于打开认证的开关
AuthName "123.com user auth" //自定义认证的名字,做用不大
AuthType Basic //认证的类型,通常为Basic,其余类型阿铭没用过
AuthUserFile /data/.htpasswd //指定密码文件所在位置
require valid-user //指定须要认证的用户为所有可用用户
</Directory>
</VirtualHost>
/usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd aming
从新加载配置php
/usr/local/apache2.4/bin/apachectl -t , = 测试配置文件是否正确linux
/usr/local/apache2.4/bin/apachectl graceful =从新加载配置文件
绑定hosts(Windows的hosts文件),浏览器测试
curl -x127.0.0.1:80 www.123.com //状态码为401说明须要认证用户和密码
curl -x127.0.0.1:80 -uaming:passwd www.123.com //状态码为200正确认证 200=没问题apache
配置文件修改以下:vim
配置文件修改完之后生成密码:浏览器
/usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd aming (测试机器密码rabbit)bash
第二次再次建立新用户那么就不须要 -c 由于已经建立过密码文件了。服务器
301表示永久跳转;302表示临时跳转。php7
SEO(Search Engine Optimization)搜索引擎优化,在了解搜索引擎天然排名机制的基础上,对网站进行内部及外部的调整优化,改进网站在搜索引擎中的关键词天然排名,得到更多流量,从而达成网站销售及品牌建设的预期目标。curl
[root@adailinux ~]# vim /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>
<IfModule mod_rewrite.c> //须要mod_rewrite模块支持 RewriteEngine on //打开rewrite功能 on=打开 off=关闭 RewriteCond %{HTTP_HOST} !^111.com$ //定义rewrite的条件,主机名(域名)不是www.123.com知足条件 = 当域名不是 111.com 那么就会进行跳转 RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L] //定义rewrite规则,当知足上面的条件时,这条规则才会执行 R=301 表示永久跳转 L=只跳转一次 R=302 表示临时跳转 </IfModule>
[root@aminglinux ~]# /usr/local/apache2.4/bin/apachectl -t Syntax OK [root@aminglinux ~]# /usr/local/apache2.4/bin/apachectl graceful [root@aminglinux ~]# /usr/local/apache2.4/bin/apachectl -M |grep rewrite
在此检查Apache是否加载了虚拟主机配置中调用的rewrite模块,若是没有加载,须要编辑Apache配置文件“httpd.conf” 搜索 rewrite :ide
[root@aminglinux ~]# vim /usr/local/apache2.4/conf/httpd.conf …… LoadModule rewrite_module modules/mod_rewrite.so LoadModule php5_module modules/libphp5.so #LoadModule php7_module modules/libphp7.so
即,去掉注释符号“#”,加载rewrite模块。
[root@aming-01 ~]# /usr/local/apache2.4/bin/apachectl -t Syntax OK [root@aming-01 ~]# /usr/local/apache2.4/bin/apachectl graceful [root@aming-01 ~]# /usr/local/apache2.4/bin/apachectl -M | grep rewrite rewrite_module (shared)
使用curl检测:
此时,状态码为301,即设定了域名永久跳转! 状态码为404表示页面不存在 , 状态码为401表示须要网页验证。
在浏览器进行检测时,访问“www.example.com”会直接跳转到“111.com”。
日志文件所在位置:
access_log 表示访问日志 error_log 表示错误日志
[root@aminglinux ~]# ls /usr/local/apache2.4/logs 111.com-access_log abc.com-access_log access_log httpd.pid 111.com-error_log abc.com-error_log error_log
vim /usr/local/apache2.4/conf/httpd.con
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common common=系统默认格式 #h表示host来源IP,l表示login用户,u表示user用户密码,t表示time时间,r表示request(行为),s表示status状态码,b表示byte大小 #user-agent:用户代理 #referer:跳转到当前位置的上一个网址(即:提供当前IP的网站)
编辑虚拟主机配置文件“httpd-vhosts.conf”:
[root@aminglinux ~]# vim /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。
从新加载:
[root@aminglinux ~]# /usr/local/apache2.4/bin/apachectl -t Syntax OK [root@aminglinux ~]# /usr/local/apache2.4/bin/apachectl graceful
查看更改后的日志样式:
[root@aminglinux ~]# cat /usr/local/apache2.4/logs/111.com-access_log