301是永久重定向的状态码,302是临时重定向的状态码。一般来说,301跳转多用于网站改版时新旧网站的对接,302跳转一般用于404页面的跳转(如果我们访问一个网站出错,会被服务器设置成访问404页面,这时用302跳转直接从错误页面跳转到首页)。这是最常用的方法。
404页面
网站后台和空间后台是不同的,空间后台不让登可以去购买空间时的服务商咨询客服。登录网站后台如果跳转,那就是空间出问题了,登录后台空间后设置正确就行。
301跳转通常用在网站换域名和为了保持链接统一性所用的。比如原来的域名www.a.com现在换成www.b.com,用了301跳转后,访问www.a.com/about.html就会自动变成www.b.com/about.html。下面摘抄一下设置301的代码:301跳转代码全集(ASP|PHP|JSP|.NET):
IIS下301设置:
Internet信息服务管理器 -> 虚拟目录 -> 重定向到URL,输入需要转向的目标URL,并选择“资源的永久重定向”。
ASP下的301转向代码
<%@ Language=VBScript %>
<%
Response.Status=”301 Moved Permanently”
Response.AddHeader “Location”, “http://www.boaer.com/”
%>
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.boaer.com/”)
}
</script>
PHP下的301转向代码
header(”HTTP/1.1 301 Moved Permanently”)
header(”Location: http://www.boaer.com/”)
exit()
CGI Perl下的301转向代码
$q = new CGI
print $q->redirect(”http://www.boaer.com/”)
JSP下的301转向代码
<%
response.setStatus(301)
response.setHeader( “Location”,“http://www.boaer.com/” )
response.setHeader( “Connection”,“close” )
%>
Apache下vhosts.conf中配置301转向,为实现URL规范化,SEO通常将不带WWW的域名转向到带WWW域名,vhosts.conf中配置为:
<VirtualHost *:80>
ServerName www.boaer.com
DocumentRoot
</VirtualHost>
<VirtualHost *:80>
ServerName xxx.com
RedirectMatch permanent ^/(.*) http://www.boaer.com/$1
</VirtualHost>
Apache下301转向代码,新建.htaccess文件,输入下列内容(需要开启mod_rewrite):1)将不带WWW的域名转向到带WWW的域名下:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^xxx.com [NC]
RewriteRule ^(.*)$ http://www.boaer.com/$1 [L,R=301]
2)重定向到新域名
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(.*)$ http://www.boaer.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
301设置好这后,就要检测一下301是否生效。这里有两个在线检测301重定向的工具:
国内版:http://tool.chinaz.com/pagestatus/
国外版:http://www.seoconsultants.com/tools/headers#Results
可以设置永久的301重定向跳转。301永久重定向是所有的重定向方法中唯一符合搜索引擎规则的重定向方法,其他的重定向还包括302暂时重定向和JS跳转等,这些方式都容易导致URL不规范问题的产生。所以说如果你有多个域名都希望可以让他们访问同一个网站,那就只能将其中一个做为主域名,剩下的其他域名做301永久重定向到这个主域名,只有这样才可以完美的让多个域名都访问一个站点,不会产生重复收录,导致网站被惩罚的现象