400-685-0732

WJMonitor舆情之声

企业大数据智能舆情监测管理解决方案

全网监测海量数据按需发布监测预警

实时把握舆情动态精准追溯信息源头

获取验证码
企业采购 个人使用
当前位置: 首页 > SEO博客 > Linux下多域名的整站301跳转设置

Linux下多域名的整站301跳转设置

时间:2011-12-28 20:55:49
在linux系统中,大家可能都设置过不带www的301跳转方法,例如在httpd.conf或者.htaccess中,代码是这样的:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^domain.com [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]

但是碰到有多个域名同时设置成整站301跳转到一个主域名时,该如何做呢?

笔者以前没做过,今天在搬迁一客户的网站时,由于是需要做多个域名的整站301,所以还是在网上查找了一下相关设置方法,终于找到了解决方案。是这样的,如果你拥有多个辅助的域名b.com和c.com,从SEO的角度,需要做整站301跳转,那么在Linux下,文件httpd.conf或者.htaccess文件中,你就可以写成:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^b.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.b.com [NC,OR]
RewriteCond %{HTTP_HOST} ^c.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.c.com [NC,OR]
RewriteCond %{HTTP_HOST} ^a.com [NC]
RewriteRule ^(.*)$ http://www.a.com/$1 [L,R=301]

就是多个域名,可以在NC后面加个OR设置,直到最后一个,中括号中相关字母代表的意思是:

1) R[=code](force redirect) 表示强制外部重定向,强制在替代字符串加上http://thishost[:thisport]/前缀重定向到外部的URL.如果code不指定,将用缺省的302 HTTP状态码。
2) L(last rule) 表明当前规则是最后一条规则,停止分析以后规则的重写。
3) NC(no case) 不区分大小写

而经过笔者多次测试后,也发现了一个有趣的现象,即采用重写语句RewriteRule ^(.*)$ http://www.a.com/$1 [L,R=301]后,某个url例如a.com/news/1.html会被跳转成www.a.com//news/1.html,多了一个斜杠,故经过优化后,采用重写语句RewriteRule ^(.*)$ http://www.a.com$1 [L,R=301]比较好,就不会多出那个斜杠来了。

301跳转
分享按钮