301重定向方法大全,非常完整

301重定向(也叫301转向,301跳转)对网站优化所起的作用是不可忽视的,尤其是针对SE(搜索引擎)处理网站页面权重的时候,更加显得重要。网站换了新域名,默认首页需要跳转等,从SEO角度来说,我们都建议使用301重定向,而不是JS跳转或META REFRESH或302转向,这些很容易引来SE的惩罚。

什么是301重定向呢?

301重定向是当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息 (header)中的状态码的一种,表示本网页永久性转移到另一个地址。其它常见的状态码还包括,200表示一切正常,404网页找不到,302暂时转向,等等。

为什么要用301转向?

网址转向方法主要包括:301转向,302转向,JavaScript转向,PHP/ASP/CGI转向,META REFRESH网页META刷新等。302转向可能会有URL规范化问题。其它方法都是常用的作弊手法,当然不是说不可以正当地用,方法本身没有错,但被作弊者用多了,搜索引擎对这些可疑的转向都很敏感。何必冒险呢。

(一)如果你使用的是独立服务器, 你可以在服务器端配置301重定向

  1. windows服务器可以在 IIS 里设置
    IIS信息管理器 -- 选择网站 -- 属性 -- 主目录 -- 选重定向到URL,输入需要转向的目标URL,并选择“资源的永久重定向”
    截图如下:

  2. linux服务器则修改Apache的配置文件

Apache下301转向代码新建.htaccess文件,输入下列内容(需要开启mod_rewrite):

1)将不带WWW的域名转向到带WWW的域名下Options +FollowSymLinks

RewriteEngine on

RewriteCond %{HTTP_HOST} ^lesishu.cn [NC]

RewriteRule ^(.*)$ /$1 [L,R=301]

2)重定向到新域名Options +FollowSymLinks

RewriteEngine on

RewriteRule ^(.*)$ /$1 [L,R=301]

3)使用正则进行301转向,实现伪静态Options +FollowSymLinks

RewriteEngine on

RewriteRule ^news-(.+).html$ news.php?id=$1将news.php?id=123这样的地址转向到news-123.html

4)Apache下vhosts.conf中配置301转向为实现URL规范化,SEO通常将不带WWW的域名转向到带WWW域名,vhosts.conf中配置为:

ServerName www.pcbookcn.com

DocumentRoot /home/lesishu

ServerName lesishu.cn

RedirectMatch permanent ^/(.*) /$1

(二)如果你使用的是虚拟主机, 则可以通过编写代码方式来实现301重定向

1)HTML静态页面下使用JavaScript的301重定向代码

if (document.domain =='yourolddomain')

this.location = "http://yourdomain" + this.location.pathname + this.location.search;

2)ASP下的301重定向

3)PHP用代码实现301重定向的方法

{?php

header("HTTP/1.1 301 Moved Permanently");

header("Location:/");

exit();

?}

4)CGI Perl下的301重定向代码

$q = new CGI;

print $q->redirect("/");

5)JSP下的301转向代码

6) ASP.Net下的301转向代码

private void Page_Load(object sender, System.EventArgs e)

{

Response.Status = "301 Moved Permanently";

Response.AddHeader("Location","/");

}

7)ColdFusion 301 重定向代码

2012-04-02 08:2017