需求,把111.com域名跳轉到www.111.com,配置以下:php
<VirtualHost *:80> DocumentRoot "/data/wwwroot/www.111.com" ServerName www.111.com ServerAlias 111.com <IfModule mod_rewrite.c> //須要mod_rewrite模塊支持 RewriteEngine on //打開rewrite功能 RewriteCond %{HTTP_HOST} !^www.111.com$ //定義rewrite的條件,主機名(域名)不是www.111.com知足條件 RewriteRule ^/(.*)$ http://www.111.com/$1 [R=301,L] //定義rewrite規則,當知足上面的條件時,這條規則纔會執行 </IfModule> </VirtualHost>
/usr/local/apache2/bin/apachectl -M|grep -i rewrite //若無該模塊,須要編輯配置文件httpd.conf,刪除rewrite_module (shared) 前面的#
curl -x127.0.0.1:80 -I 111.com //狀態碼爲301html
[root@Dasoncheng ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf <VirtualHost *:80> # ServerAdmin webmaster@dummy-host2.example.com DocumentRoot "/data/wwwroot/111.com" ServerName www.111.com ServerAlias 111.com # <Directory /data/wwwroot/111.com> # <FilesMatch admin.php> # AllowOverride AuthConfig # AuthName "Please pass the auth for this page" # AuthType Basic # AuthUserFile /data/.htpasswd # require valid-user # </FilesMatch> # </Directory> <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} !^www.111.com$ RewriteRule ^/(.*)$ http://www.111.com/$1 [R=301,L] </IfModule> ErrorLog "logs/111.com-error_log" CustomLog "logs/111.com-access_log" common </VirtualHost> [root@Dasoncheng ~]# /usr/local/apache2.4/bin/apachectl -M |grep -i rewrite [root@Dasoncheng ~]# vim /usr/local/apache2.4/conf/httpd.conf [root@Dasoncheng ~]# grep -i rewrite /usr/local/apache2.4/conf/httpd.conf LoadModule rewrite_module modules/mod_rewrite.so [root@Dasoncheng ~]# /usr/local/apache2.4/bin/apachectl -M |grep -i rewrite rewrite_module (shared) [root@Dasoncheng ~]# /usr/local/apache2.4/bin/apachectl graceful
[root@Dasoncheng ~]# curl -x 192.168.60.11:80 111.com -I HTTP/1.1 301 Moved Permanently ##遇到的第二個提示符(也是httpd.conf裏面配置的)301,永久跳轉; Date: Fri, 23 Feb 2018 08:04:27 GMT Server: Apache/2.4.27 (Unix) PHP/5.6.30 Location: http://www.111.com/ Content-Type: text/html; charset=iso-8859-1
訪問日誌記錄用戶的每個請求!
vim /usr/local/apache2.4/conf/httpd.conf //搜索LogFormat
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
LogFormat "%h %l %u %t "%r" %>s %b" common
把虛擬主機配置文件改爲以下:
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/www.111.com"
ServerName www.111.com
ServerAlias 111.com
CustomLog "logs/111.com-access_log" combined
</VirtualHost>
從新加載配置文件 -t,graceful
curl -x127.0.0.1:80 -I 111.com
tail /usr/local/apache2.4/logs/111.com-access_loglinux
[root@Dasoncheng ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf <VirtualHost *:80> # ServerAdmin webmaster@dummy-host2.example.com DocumentRoot "/data/wwwroot/111.com" ServerName www.111.com ServerAlias 111.com <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} !^www.111.com$ RewriteRule ^/(.*)$ http://www.111.com/$1 [R=301,L] </IfModule> ErrorLog "logs/111.com-error_log" CustomLog "logs/111.com-access_log" combined </VirtualHost> [root@Dasoncheng ~]# grep "LogFormat" /usr/local/apache2.4/conf/httpd.conf LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common [root@Dasoncheng ~]# /usr/local/apache2.4/bin/apachectl -t Syntax OK [root@Dasoncheng ~]# /usr/local/apache2.4/bin/apachectl graceful
使用三種方式訪問:web
[root@Dasoncheng ~]# curl www.111.com 111.com [root@Dasoncheng ~]# tail -f /usr/local/apache2.4/logs/111.com-access_log 192.168.60.1 - - [23/Feb/2018:15:53:50 +0800] "GET / HTTP/1.1" 200 8 192.168.60.1 - - [23/Feb/2018:15:53:50 +0800] "GET / HTTP/1.1" 200 8 192.168.60.1 - - [23/Feb/2018:15:58:21 +0800] "GET / HTTP/1.1" 301 227 192.168.60.1 - - [23/Feb/2018:15:58:21 +0800] "GET / HTTP/1.1" 200 8 192.168.60.1 - - [23/Feb/2018:15:58:48 +0800] "GET / HTTP/1.1" 301 227 192.168.60.1 - zhangsan [23/Feb/2018:15:58:48 +0800] "GET / HTTP/1.1" 200 8 192.168.60.11 - - [23/Feb/2018:16:04:22 +0800] "GET HTTP://111.com/ HTTP/1.1" 301 227 192.168.60.11 - - [23/Feb/2018:16:04:27 +0800] "HEAD HTTP://111.com/ HTTP/1.1" 301 - ##從下面開始,是我用三種方式訪問的: 192.168.60.11 - - [23/Feb/2018:16:23:54 +0800] "GET / HTTP/1.1" 200 8 "-" "curl/7.29.0" 192.168.60.1 - zhangsan [23/Feb/2018:16:24:36 +0800] "GET / HTTP/1.1" 200 8 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0" 192.168.60.1 - - [23/Feb/2018:16:26:51 +0800] "GET / HTTP/1.1" 200 8 "http://ask.apelearn.com/question/16941" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; Tablet PC 2.0; Zoom 3.6.0)"
apache虛擬主機開啓php的短標籤 http://www.aminglinux.com/bbs/thread-5370-1-1.htmlapache