用程序实现301永久重定向

发布时间:2021-01-09编辑:脚本学堂
301重定向是当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header)中的状态码的一种,表示本网页永久性转移到另一个地址。

先来个形象的描述:
新站初始,很多站长都会将不带3w的网址转向带3w的网址,这样做的好处方面是提升用户体验(网民已经习惯在域名签名输入www),再者将不带3w的网址转向带3w的网址将网站权重全部集中到带3w的域名,这样更有利于排名。

上面说的跳转就是采用301重定向,301重定向是当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header)中的状态码的一种,表示本网页永久性转移到另一个地址。301重定向主要是将需要转移的网址重定向另一个新的网址上,并且是永久性转移。当网站的域名发生变更后,搜索引擎只对新网址进行索引,同时又会把旧地址下原有的外部链接如数转移到新地址下,从而不会让网站的排名因为网址变更而受到丝毫影响301重定向无疑是最佳的办法。

301重定向的方法有很多,这里整理了如何用程序做301永久重定向的方法供大家参考。

1.PHP下的301重定向

复制代码 代码如下:
<?php
    $the_host = $_SERVER['HTTP_HOST'];//取得当前域名 
    $request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ”;//判断地址后面是否有参数 
    if($the_host != ‘www.jb200.com’)//把这里的域名换上你想要的 
    { 
       header(‘HTTP/1.1 301 Moved Permanently’);//发出301头部 
       header(‘Location: http://www.jb200.com’.$request_uri);//跳转到你希望的地址格式 
    }
    ?>

下面方法适用于dedecms, 此方法解决了301跳转带来的index.html尾巴的问题,有兴趣的可以试试看。

复制代码 代码如下:
$jump301=1;//是否开启301跳转开关,1开 0关
    $index_file=’index.html’;//首页文件 不支持SSI(shtml/shtm)
    if(substr($_SERVER['SERVER_NAME'],0,4)!=’www.’&&$jump301)
    {
    header(‘HTTP/1.1 301 Moved Permanently’);
    header(‘Location:http://www.’.$_SERVER['SERVER_NAME']);
    exit();
    }

根据自己程序将以上代码添加到根目录index.php文件中!

2.ASP下的301重定向

第一步、建立tiaozhuan.asp内容如下:

复制代码 代码如下:
<%@LANGUAGE=”VBSCRIPT” CODEPAGE=”936″%>
    <%
    Response.Status=”301 Moved Permanently”
    Response.AddHeader “Location”,”http://www.jb200.com/index.html”
    Response.End
    %>

将tiaozhuan.asp上传到网站根目录,并在虚拟主机控制面板将tiaozhuan.asp添加到默认首页最前面!

3.ASP .NET下的301重定向

复制代码 代码如下:
  //判断是否是www.开头,如果不是301调整到www.域名
    if (!System.Web.HttpContext.Current.Request.Url.ToString().StartsWith “http://www.”)) {
    //301 重定向到 /目录下 HttpContext.Current.Response.StatusCode = 301; HttpContext.Current.Response.Status = “301 Moved Permanently”; HttpContext.Current.Response.AddHeader(“Location”, “http://www.jb200.com/”); HttpContext.Current.Response.End(); }
    注意,以上代码只适合动态网站,静态无效!