一個站點可能會有多個域名,而多個域名總得有個主次,例:www.123.com (主),www.test.com (次)。但願實現無論用哪一個域名訪問,最終都跳到 www.123.com 上。這個行爲叫域名跳轉,這裏的301只是個狀態碼,跳轉除了301外還有302。html
[root@localhost ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
在對應的虛擬主機配置文件中加入apache
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} ^www.test.com$ RewriteRule ^/(.*)$ http://www.123.com/$1 [R=301,L] </IfModule>
若是是多個域名,能夠這樣設置:
vim
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} ^www.test.com [OR] RewriteCond %{HTTP_HOST} ^www.test1.com$ RewriteRule ^/(.*)$ http://www.123.com/$1 [R=301,L] </IfModule>
或者
瀏覽器
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} !^www.123.com$ RewriteRule ^/(.*)$ http://www.123.com/$1 [R=301,L] </IfModule>
重啓 apache 後,在瀏覽器訪問 www.test.com 會直接跳到 www.123.com 。使用 curl 命令測試一下。
bash
[root@localhost ~]# curl www.test.com -I HTTP/1.1 301 Moved Permanently Date: Wed, 18 May 2016 01:46:04 GMT Server: Apache/2.2.31 (Unix) PHP/5.6.10 Location: http://www.123.com/ Content-Type: text/html; charset=iso-8859-1