域名301跳转的实现方法

By | 2019-02-25

所谓301永久重定向(或叫301转向,301跳转),是指当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header)中的状态码的一种,表示本网页永久性转移到另一个地址。

301永久重定向有何作用?在哪些情况下适用?
从301永久重定向的定义可以看出,它是一种状态码,会向搜索引擎或浏览器发出信息:本网页的地址已经永久改变了。并会把新的地址传达过去。而相应的就是:我们输入网址A访问,显示出来的是转向后的网址B,转向过程极短以至无法察觉。所以,301永久重定向对于访客来说,作用就是将他要访问的而实际上已不存在的网址转到另一个网址,避免出现“此网页无法显示”之类的错误;对于搜索引擎优化|SEO来说,给搜索引擎一个友好的信息,告诉它此页面已永久重定向,避免搜索引擎找不到页面。这对于网站的SEO是很重要的,因为301永久重定向对SEO无任何不好的影响!而且网页A的关键词排名和PR级别都会传达给网页B!
一、当出于需要删除网站中的某些目录时,可以通过301永久重定向将此目录重定向到网站首页。
二、网站更换域名时,通过301永久重定向将旧域名重定向至新域名,挽回流量损失和SEO。
三、想要多个域名同时指向同一网站时,通过301永久重定向可以实现。一般的虚拟主机后台提供将example.com和www.example.com等多个域名绑定到同一网站的功能,但这样对收录可能有影响,而用301永久重定向就没有这样的担忧。
四、实现网址规范化。

经常会碰到这样的情况,其他网站链接你的站点时,会用下面的链接:

http://www.example.com

http://example.com

http://www.example.om/index.html

http://example.com/index.html

而这样导致:你站点主域名的PR值分散到其他几个URLs了。

如果你用301重定向把其他三个URL转到www.example.com
PR也就集中在主域名:www.example.com 了。

如何实现301永久重定向?

实现的方法主要描述两种,一种是通过容器的配置修改实现,另外一种是程序语言实现

一、容器的配置修改方法:

1)IIS容器实现301转向:

1.internet信息服务管理器中,在想要重定向的网页或目录上点击鼠标右键
2.选择-重定向到URL
3.输入目标页面的地址
4.选中-资源的永久重定向
5.应用并确定

2)Apache容器下修改方法:

1、修改.htaccess文件,输入下列内容(需要开启mod_rewrite):

①将不带WWW的域名转向到带WWW的域名下:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^itdcw.com [NC]
RewriteRule ^(.*)$ http://www.itdcw.com/$1 [L,R=301]②重定向到新域名:

RewriteEngine on
RewriteRule ^(.*)$ http://www.itdcw.com/$1 [L,R=301]

2、Apache下vhosts.conf中配置301转向: <VirtualHost *:80>
ServerName www.itdcw.com
DocumentRoot /home/
</VirtualHost><VirtualHost *:80>
ServerName itdcw.com
RedirectMatch permanent ^/(.*) http://www.itdcw.com/$1
</VirtualHost> 

3)Ruby容器中实现301转向:
 def old_action
headers[“Status”] = “301 Moved Permanently”
redirect_to “http://www.itdcw.com”
end 
4)Coldfusion容器中实现301转向:
 <.cfheader statuscode=”301″ statustext=”Moved permanently”>
<.cfheader name=”Location” value=”http://www.itdcw.com”> 

二、程序语言跳转方法:
1、ASP的301跳转代码:
 <%@ Language=”VBScript” %>
<%
Response.Status = “301 Moved Permanently”
Response.AddHeader “Location”, “http://www.itdcw.com”
%> 

2、PHP的301跳转代码:

$the_host = $_SERVER['HTTP_HOST']; //获取主域名 $request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ''; //获取后缀 if($the_host != 'nanjingseo.org')   
{ header('HTTP/1.1 301 Moved Permanently'); header('Location: http://nanjingseo.org'.$request_uri);
}



3、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.itdcw.com”);
}
</script> 

4、CGI Perl的301跳转代码:
 $q = new CGI;
print $q->redirect(“http://www.itdcw.com”); 

5、JSP的301跳转代码:
 <%
response.setStatus(301);
response.setHeader( “Location”, “http://www.itdcw.com” );
response.setHeader( “Connection”, “close” );
%> 

发表评论

电子邮件地址不会被公开。 必填项已用*标注