现在大多数网站都存在一些内容相同但网址(URL)不一样的重复内容,这些重复的内容对于搜索引擎来说却可能被认为是复制网页,复制网页虽然不会被惩罚但因多个网址存在分散了页面权重,肯定不利于其排名。解决这个问题就需要网址规则化处理,网址规范化(URL canonicalization)从字面上理解就是搜索引擎挑选最好的URL网址作为真正网址的过程,通过网址规范化处理把最好的URL网址反馈给搜索引擎。
解决网址规范化问题有好多方法,目前我们讲使用301重定向来进行网址规范化处理。
什么是301重定向?
301重定向(301转向、301跳转)是当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header)中的状态码的一种,表示本网页永久性转移到另一个地址。301代表永久性转移(Permanently Moved),301重定向是网页更改地址后对搜索引擎友好的最好方法。只要不是暂时搬移的情况,都建议使用301来做转址。
如何来做301重定向?
下面是我从网上收集的进行301重定向的方法,基本上全了,如果你有新的方法,欢迎你进行补充!
1、IIS6下301设置
Internet信息服务管理器 -> 虚拟目录 -> 重定向到URL,输入需要转向的目标URL,并选择"资源的永久重定向"。
2、ASP下的301重定向代码
<%@ Language=VBScript %>
<% Response.Status="301 Moved Permanently" Response.AddHeader "Location","http://php.hhsy.cc/" %>
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://php.hhsy.cc/");
}
</script>
4、PHP下的301重定向代码
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://php.hhsy.cc/");
exit();
5、CGI Perl下的301重定向代码
$q=new CGI;
print $q->redirect("http://php.hhsy.cc/");
6、JSP下的301重定向代码
<%
response.setStatus(301);
response.setHeader("Location","http://php.hhsy.cc/");
response.setHeader("Connection","close");
%>
7、ColdFusion下的301重定向
<cfheader statuscode="301" statustext="Moved permanently">
<cfheader name="Location" value="http://php.hhsy.cc/">
8、Apache下301重定向代码
建立.htaccess文件,输入下列内容(需要开启mod_rewrite):
1)将不带WWW的域名转向到带WWW的域名下
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^mydomain.cn [NC]
RewriteRule ^(.*)$ http://php.hhsy.cc/$1 [L,R=301]
2)重定向到新域名
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(.*)$ http://php.hhsy.cc/$1 [L,R=301]
3)使用正则进行301重定向,实现伪静态(下例将实现将news.php?id=123这样的地址转向到news-123.html)
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^news-(.+)\.html$ news.php?id=$1
9、Apache下vhosts.conf中配置301重定向
为实现URL规范化,SEO通常将不带WWW的域名转向到带WWW域名,vhosts.conf中配置为:
<VirtualHost *:80>ServerName php.hhsy.cc DocumentRoot /home/lesishu</VirtualHost>
<VirtualHost *:80>ServerName mydomain.cn RedirectMatch permanent ^/(.*) http://php.hhsy.cc/$1</VirtualHost>
当然Apache下进行301重定向除了以上2种方法,还有其他配置方法和可选参数,欢迎你的补充。
在进行301重定向后,我们如何检测我们做的301重定向是否正确,下面介绍两个301重定向检测工具。
http://www.webuildpages.com/seo-tools/header-checker/
http://www.seoconsultants.com/tools/headers.asp