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