在實驗中我們發現,無論我們使用哪個域名都可以的,而且出現一個情況,我們只是在hosts文件中將某一域名與自己的ip對應,配置中並沒有這個域名,也可以登錄我們的discuz界面,這個並不是我們想要的。所以我們需要設定一個默認虛擬主機來將諸如此類的訪問攔截。
我們只需要在配置文件httpd-vhost.conf中,在我們設置的虛擬主機前再添加一個,配置如下。
# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/tmp/123"
ServerName 2142.com
</VirtualHost>
# mkdir /tmp/123
# chmod 000 /tmp/123
# /usr/local/apache2/bin/apachectl -t
# /usr/local/apache2/bin/apachectl start
這是我們會發現上方提到的域名訪問不到我們的discuz,但同時我們又發現一個問題,我們設置三個域名,雖然可以成功訪問,但是主頁域名不相同,這個不符合我們的正常思維,而且這個會影響搜索
所以這裏使用301域名跳轉的方法,雖然3個域名都可以訪問,但是會跳轉到一個我們指定的域名
例如,www.aaa.com訪問,進入後會自動跳轉到www.test.com
配置如下,寫入第二個虛擬主機內
# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.aaa.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.bbb.com$
RewriteRule ^/(.*)$ http://www.test.com/$1 [R=301,L]
</IfModule>
運用了rewrite模塊,無論使用3個域名的哪個訪問,都會跳轉至www.test.com
# /usr/local/apache2/bin/apachectl -t
# /usr/local/apache2/bin/apachectl start
測試
# curl -x127.0.0.1:80 www.aaa.com -I
HTTP/1.1 301 Moved Permanently
Date: Thu, 17 Nov 2016 19:05:32 GMT
Server: Apache/2.2.31 (Unix) PHP/5.6.28
Location: http://www.test.com/
Content-Type: text/html; charset=iso-8859-1
成功