小左闲谈

利用.htaccess文件设置301重定向的方法详解

当前位置:首页 » 学习 » 本页
In 学习  @2012-12-21

301的重定向对于网站SEO来说是很重要的一步,一般也是必须做的,因为一般解析域名的时候我们将abc.com和www.abc.com都@到服务器IP(很多人都是这么做的),导致搜索引擎认为abc.com和www.abc.com是两个不同的网站,这就是为什么很多朋友发现自己的同一个网站abc.com和www.abc.com在百度上都有快照,但快照日期却不一样的原因。换言之,搜索引擎认为这是两个不同的网站,这就直接导致了这个站的权重(如PR、百度权重等)的一部分被分到了另外一个不必要的域名上,所以我们提倡对域名进行301永久重定向!

利用.htaccess文件设置301重定向的方法详解

利用.htaccess文件设置301重定向的方法详解

首先解释一下301是什么,服务器对请求的返回状态(HTTP状态)一般有下面几种不同的情况:

页面的HTTP状态可以在站长工具上的页面HTTP状态查询功能查询。

200 OK:表示请求已经接受,客户所需要的信息已经成功的返回给客户。

206 Partial Content:部分内容,如果客户端请求的是较大的资源,比如下载,MP3,会被分段传送。此状态表示这是其中的一部分。

300 Multiple Choices:可选重定向,表示客户请求的资源已经被转向到另外的地址了,但是没有说明是否是永久重定向还是临时重定向。

301 Moved Permanently:永久重定向,同上,但是这个状态会告知客户请求的资源已经永久性的存在在新的重定向的URL上。

302 Moved Temporatily:临时重定向,在HTTP1.1中状态描述是Found,这个和300一样,但是说明请求的资源临时被转移到新的URL上,在以后可能会再次变动或者此URL会正常请求客户的连

接。

400 Bad Request:坏的请求,这在IIS里常见,其表现为(Invalid Hostname)失败的主机头,另外其他的失败的坏请求都是此状态。

403 Forbidden:禁止状态,此状态是明显的禁止用户和拒绝用户的请求!

404 Not Found:请求的地址和资源没有找到。

500 Internal Server Error:内部服务器错误。

503 Service Unavailable:服务器不可用,表示Web服务器已经崩溃或者超载运行,此状态就是明确的告诉用户,现在服务器有问题。

空间的不同往往设置301重定向的方法也不同,下面介绍下Linux空间设置301重定向的方法,即修改.htaccess文件法。

在很多情况下,网站都需要进行301或302重定向,其中一个为永久重定向,一个为临时重定向。比如网站整个更换了域名,比如网站结构或目录发生了移动,比如需要将某个域名上的文件迁移到另外的域上等等。

有时候这种重定向对SEO或者PR值的传递是非常有效的。一般我们有几种途径制作一个htaccess文件,比如自己手动编辑,好处是非常灵活、功能强大,但坏处是很容易出错,小左提醒您修改的时候一定要谨慎;另一种途径是通过空间里的控制面板进行自动编辑,这种方法比较死板,但不会因为人为原因出错,除非设置错了。

比如CPanel控制面板中,在Domain>Redirects里面,直接选择相应的选项即可。下面我们来详细讨论一下如何手动编辑这个htaccess文件:

务必注意:在编辑之前请备份原来的htaccess文件,以免造成损失。

1、将m1910.com重定向至www.m1910.com。本站就使用了这种重定向的方法避免页面权重分散。

一旦选择了带www的为主域名,今后就不要随意更改,方法如下:

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

上面这一句话是从反面来写的:如果域名不是带www的,就统一301跳转到带www的域名中去

2、如果需要将域名从www.m1910.com跳转到m1910.com,则可以使用一下代码:

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

3、如果需要变更域名,即将老域名换成全新的域名,但是网页内容与结构不变,则可以使用以下代码来实现:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !旧域名$ [NC]
RewriteRule ^(.*)$ http://新域名/$1 [L,R=301]

如果是带www的域名间跳转,则以此类推,在域名前加上www即可。

Google非常适用网站建设中的以上代码,它会很快按照你的意愿将原先收录的网址该变过来,即使你更换了域名,还能把以前域名的PR值很好地保留下来。

301跳转也不能轻易做,有时做错了可能引起很多问题,如比没有完成可能会引起FIREFOX打不开网站,就算放弃301重定向也有可能暂时打不开的情况!

若无特殊声明,表示本文由:小左闲谈.原创
链接地址: http://blog.m1910.com/archives/481.html
版权所有 © 转载时请以链接形式注明作者和原始出处!
标签: , ,   评论: 2枚  被围观 6,091 次

发表一下你的看法

2 评论 在 "利用.htaccess文件设置301重定向的方法详解"

avatar
排序:   最新 | 最旧
小苏

我都没有做重定向处理。 ❗

wpDiscuz