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