一个网站难免会有多个域名,而多个域名总得有一个主次。只要定义好了主域名,不管用哪个域名都会跳转到主域名上来。那么这个行为就叫做域名跳转,也可以叫重定向,这里的301只是一个状态码。跳转除了301还有302。301是永久重定向(域名跳转用301);302是临时重定向。
[[email protected] www]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
在对应的虚拟主机配置文件中加入
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.aaa.com$
RewriteRule ^/(.*)$ http://www.test.com/$1 [R=301,L]
</IfModule>
如果是多个域名,可以这样设置:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.aaa.com$[OR]
RewriteCond %{HTTP_HOST} ^www.test.com/bbs$
RewriteRule ^/(.*)$ http://www.test.com/$1 [R=301,L]
</IfModule>
重启Apache之后,在浏览器访问www.aaa.com会直接跳转到www.test.com。如果想快速测试效果,其实可以直接在Linux命令行下使用curl命令。
#curl -x 192.168.1.148:80 www.aaa.com/随便写 -I(大i)
HTTP、1.1 301 Moved Permanently
Server: nginx/1.0.15
Connection: keep-alive
Date: Thu,20 Aug 2015 14:12:56 GMT
Content-Type:text/html
Content-Length: 185
Location: http://www.test.com/随便
X-Upstream-Echo-Time:53