lamp默認虛擬主機和301跳轉

在實驗中我們發現,無論我們使用哪個域名都可以的,而且出現一個情況,我們只是在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

成功


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