301跳转代码全集[ASP|PHP|JSP|ASP.NET]

301跳转是一种自动跳转方式,是服务器header数据量头信息中的一种,是通过对服务端的修改与设置将一个页面永久重定向到另一个页面。对于SEO优化301跳转则是一个权重传递的过程。其301跳转的优势是:

对于用户友好:

由于301跳转是从服务器段发生的所以相对于使用JS或者meta跳转速度更快。

对于搜索引擎友好:

搜索引擎会根据一个网页的301跳转判断是否要将权重传递给另一个页面

1、IIS下301设置

Internet信息服务管理器 -> 虚拟目录 -> 重定向到URL,输入需要转向的目标URL,并选择"资源的永久重定向"。这种设置的弊端就是如果网站换空间或者是虚拟主机的话就不具可操作性了. 所以不到万不得已, 就不推荐使用它;

2、ASP下的301转向代码

<%@ Language=VBScript %>

<%

Response.Status="301 Moved Permanently"

Response.AddHeader "Location", "http://www.abc.com/articles/301/"

%>

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.yourdomainname.com");

}

</script>

<script runat="server">

protected void Page_PreInit(object sender, EventArgs e)

{

Response.StatusCode = 301;

Response.StatusDescription = "Moved Permanently";

Response.RedirectLocation = "http://www.targetdomainname.com";

HttpContext.Current.ApplicationInstance.CompleteRequest();

}

</script>

这段经测试可用, 用法就是把这段放在其要转向的顶部, 以便可即时执行;

4、PHP下的301转向代码

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

header("Location: http://www.abc.com/articles/301/");

exit();

5、CGI Perl下的301转向代码

$q = new CGI;

print $q->redirect("http://www.abc.com/");

6、JSP下的301转向代码

<%

response.setStatus(301);

response.setHeader( "Location", "http://www.abc.com/" );

response.setHeader( "Connection", "close" );

%>

7、Apache下301转向代码

新建.htaccess文件,输入下列内容(需要开启mod_rewrite):

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

Options +FollowSymLinks

RewriteEngine on

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

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

2)重定向到新域名

Options +FollowSymLinks

RewriteEngine on

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

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

Options +FollowSymLinks

RewriteEngine on

RewriteRule ^news-(.+)\.html$ news.php?id=$1

将news.php?id=123这样的地址转向到news-123.html

8、Apache下vhosts.conf中配置301转向

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

<VirtualHost *:80>

ServerName www.abc.com

DocumentRoot /home/abc

</VirtualHost>

<VirtualHost *:80>

ServerName abc.com

RedirectMatch permanent ^/(.*) http://www.abc.com/$1

</VirtualHost>

Apache下除了以上2种方法,还有其他配置方法和可选参数