301永久重定向可以将网页A的关键词排名和PR传达给网页B。或者当网站更换了域名,网页永久性转移到另一个地址的时候,给搜索引擎一个友好的信息,告诉它此页面已永久重定向,避免搜索引擎找不到页面。
什么情况下使用301重定向
1:网站更换域名时,通过301永久重定向将旧域名重定向至新域名,挽回流量损失和权重。
2:当出于需要删除网站中的某些目录时,就可以用301永久重定向到网站首页。
3:如果你有多个闲置域名时需要指向同一网站时,通过301永久重定向可以实现。
4:你打算实现网址规范化。
如何实现网址规范化
如果不做301重定向会导致:你站点主域名的pr值分散到其他几个URL了。这时候我们就需要使用301永久定向技术来实现网址的规范化了。需要注意的是,带www和不带www的两个网址,www其实是个二级域名,不带www的是根网址。
常用的301重定向设置方法有2种。一个是通过IIS界面直接设置,另外一个是通过代码来实现301重定向设置。
1:IIS 服务器实现301重定向
打开IIS,右键-属性-网站-IP地址哪里点编辑增加一个站点,增加一个站点,绑定的一下主机头,也可以绑定多个闲置域名。打开IIS,首先新建立一个站点,随便对应一个目录E:\wwwroot\301web。该目录下只需要2个文件,一个default.html,一个404.htm。在欲重定向的网页或目录上按右键;选中“重定向到URL”;在对话框中输入目标页面的地址;切记,记得选中“资源的永久重定向”;当然,最后要点击“应用”,完成。
2:Apache 服务器实现301 重定向
在Apache 中,有个很重要的文件.htaccess,通过对它的设置,可以实现很多强大的功能,301 重定向只是其中之一。持Apache的主机可以直接创建一个.htaccess文件,一般来说,在本地无法创建.htaccess的时候可以先创建一个txt格式文件,上传到根目录的时候再重命名为“.htaccess”就可以了。
在.htaccess文件中增加301重定向指令
RewriteEngine on
RewriteCond %{http_host} ^***.com [NC]
RewriteRule ^(.*)$ http://www.***.com/$1 [L,R=301]
整站301重定向:
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^***.com [NC]
RewriteRule ^(.*)$ http://www.***.com/$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^www.***.com [NC]
RewriteRule ^(.*)$ http://***.com/$1 [L,R=301]
另外一种是在根目录下的index.php里这样弄
header(“HTTP/1.1 301 Moved Permanently”);
header(“Location:http://abc.org/”);
exit();
3、IIS虚拟主机(向主机商询问是否支持)下301重定向代码(要求:rewrite模块为2.x以上,1.x的做出来的是302重定向)
修改httpd.ini文件的代码如下:
[ISAPI_Rewrite]
CacheClockRate 3600
RepeatLimit 32
RewriteCond %{HTTP:Host} ^xidayjs\.com$
RewriteRule (.*) http\://www\.xidayjs\.com$1 [NC,R=301]
Asp主机301重定向
在 index.asp 或 default.asp 的最顶部加入以下几行:
代码如下:
<%
Response.Status=”301 Moved Permanently”
Response.AddHeader “Location”,”www.abc.org”
Response.End
%>
ASP.Net>下的301转向代码
<script runat=”server”>
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = “301 Moved Permanently”;
Response.AddHeader(”Location”,”http://www.nngiant.com/html/301/“);
}
</script>
4>、PHP下的301转向代码
header(”HTTP/1.1 301 Moved Permanently”);
header(”Location: http://www.nngiant.com/html/301/”);
exit();
5>、CGI Perl下的301转向代码
$q = new CGI;
print $q->redirect(”http://www.nngiant.com”);
6>、JSP下的301转向代码
<%
response.setStatus(301);
response.setHeader( “Location”, “http://www.nngiant.com” );
response.setHeader( “Connection”, “close” );
%>
使用插件实现301重定向
可以实现WordPress系统的301重定向插件推荐:
Dean’s Permalinks Migration
Permalinks Migration Plugin
Redirection
Platinum SEO Pack(SEO插件,附带301重定向)
4:用ASP/PHP实现301重定向:
ASP:
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://***.com/"
Response.End
PHP:
header("HTTP/1.1 301 Moved Permanently");
header("Location:http://***.com/");
exit();
5、301重定向检测工具
你可以尝试使用一下工具,前者是国外的,后者是国内的,使用方法简单易懂。
http://www.nngiant.com/tools/headers
http://www.nngiant.cn/tools/redirectcheck
常用的跳转方式
301代表永久性转移,301重定向是网页更改地址后对搜索引擎友好的最好方法,只要不是暂时搬移的情况
,都建议使用301来做转址。302代表暂时性转移,只有当一个网站或网页在24到48小时之内临时移到其它位置的情况下才能使用该命令。能够对302重定向具备优异处理能力的只有 Google,在前些年,不少搞SEO曾广泛应用这项技术作弊,但也很容易遭受惩罚。
用HTML跳转:<META HTTP-EQUIV=REFRESH CONTENT="5;URL=http://www.nngiant.com">,表示5秒后自动跳转到首页,你也可以把时间设置的更短,但也很容易被搜寻引擎容易误判为spam而遭到惩罚。
转发和重定向的区别
一句话,转发是服务器行为,重定向是客户端行为。转发时一次请求,重定向是2次请求,转发地址栏不会发生改变,重定向地址栏会改变,转发在项目内,重定向可以转到项目外。当使用转发时,JSP容器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,而浏览器将不会知道这个过程。与之相反,重定向方式的含义是第一个页面通知浏览器发送一个新的页面请求。