域名跳轉

域名跳轉

首先打開虛擬主機配置文件,輸入命令 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,回車,見下圖,
域名跳轉
更改上圖紅色框框的內容,保存並退出。
這邊用到一個模塊 mod_rewrite,編譯 apache 時用到的 most,它會把大多數的模塊都編譯進來,如果沒有加任何參數,mod_rewrite 模塊也不會出現。RewriteEngine 是否打開,on 就是打開的意思,打開了後面的配置纔會生效。RewriteCond 定義條件,定義什麼時候纔會跳轉,當域名不是 111.com 的時候就會跳轉,現在就是以 111.com 爲主域名。!表示取反,^ 表示開頭,$ 表示結尾。定義開頭和結尾,就是爲了避免把所有包含 111.com 的域名都匹配進去。舉個例子,如果不定義開頭和結尾,像 2111.com.cn 這種域名的就會匹配進去,所以定義開頭和結尾是必要的。RewriteRule 定義規則,^ 表示除去域名之外的部分,/ 表示域名裏面的 /,(.) 表示域名中 / 的後面部分。後面的網址就是要跳轉的網址,$1表示前面的第一個小括號就是 (.) ,[R=301,L] 中的R=301表示定義一個狀態碼301,L 表示只跳一次就結尾。
更改完配置文件,需要重新加載一下,見下圖,
域名跳轉
在測試之前,還要先檢查一下 apache 是不是加載了 rewrite 模塊,使用命令 /usr/local/apache2.4/bin/apachectl -M |grep rewrite。沒有加載的話,就要進入配置文件裏面打開。 vim /usr/local/apache2.4/conf/httpd.conf,回車,搜索 /rewrite,見下圖,
域名跳轉
把紅色框框的這一行,取消前面的#註釋,保存並退出。接着往下操作,見下圖,
域名跳轉
這個時候就可以測試了。先來看一下虛擬主機配置文件的結構,輸入命令 cat /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,回車,見下圖,
域名跳轉
可以看到,第二個虛擬主機裏面有三個域名,來嘗試訪問 2111.com.cn,輸入命令 curl -x127.0.0.1:80 2111.com.cn -I,回車,見下圖,
域名跳轉
301是永久跳轉,404表示頁面不存在。命令 curl -x127.0.0.1:80 2111.com.cn/12345.php -I 中的 2111.com.cn/12345.php 是隨便寫入的,沒有這個位置。但是也實現跳轉到了 http://111.com/12345.php 這個位置。後面使用命令 curl -x127.0.0.1:80 http://111.com/12345.php -I 訪問的時候,就顯示頁面不存在。還有,301是臨時跳轉,401是用戶密碼驗證不對,用戶密碼驗證對了就是200。輸入命令 curl -x127.0.0.1:80 http://111.com/123.php -I,回車,見下圖,
域名跳轉
狀態碼還有很多,以後碰到了再說,這邊不多做解釋。
以上就是域名跳轉,也叫做域名重定向。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章