LAMP環境搭建與配置(六)
十一 配置域名跳轉
1)需求,把123.com域名跳轉到www.123.com,配置如下:
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/www.111.com"
ServerName www.111.com
ServerAlias 111.com 222.com
<IfModule mod_rewrite.c> //需要mod_rewrite模組支援
RewriteEngine on //開啟rewrite功能
RewriteCond %{HTTP_HOST} !^www.123.com$ //定義rewrite的條件,當主機名(域名)不是www.111.com滿足條件
RewriteRule ^/(.*)$ http://www.111.com/$1 [R=301,L] //定義rewrite規則,當滿足上面的條件時,這條規則才會執行
</IfModule>
</VirtualHost>
RewriteRule後面由空格劃分為三部分,第一部分為當前的URL(也就是網址),不過這個URL不把主機頭(域名)算在內的。第二部分為要跳轉的目標地址,這個地址可以寫全(包含了主機頭),當然也可以不加主機頭,預設就是前面定義的ServerName。第三部分為一些選項,需要用方括號,301位狀態碼(永久重定向),302為臨時重定向。L表示last,意思是跳轉一次就結束了。
/usr/local/apache2/bin/apachectl -M|grep -i rewrite //若無該模組,需要編輯配置檔案httpd.conf,搜尋rewrite。刪除rewrite_module (shared) 前面的#
curl -x127.0.0.1:80 -I 222.com //狀態碼為301
十二 配置Apache訪問日誌
訪問日誌記錄使用者的每一個請求,檢視訪問日誌
要配置httpd訪問日誌,首先要在主配置檔案中定義訪問日誌的格式,開啟主配置檔案:
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
%h為訪問網站的IP
%l為遠端登入名,這個欄位基本上為"-"
%u為使用者名稱,當時用使用者認證時,這個欄位為認證的使用者名稱
%t為時間
%r為請求的動作(比如用curl –I時就為HEAD)
%s為請求的狀態碼,寫成%>s為最後的狀態碼
%b為傳輸資料大小
%{Referer}i為referer資訊(請求本次地址上一次的地址就為referer)
%{User-Agent}i為瀏覽器表示
把虛擬主機配置檔案改成如下:
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/www.123.com"
ServerName www.123.com
ServerAlias 123.com
CustomLog "logs/123.com-access_log" combined
</VirtualHost>
重新載入配置檔案
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful
curl -x127.0.0.1:80 -I 111.com
tail /usr/local/apache2.4/logs/111.com-access_log