4.9 URL重定向
重定向是指把对一个域名、目录或者文件的访问请求转发至另一个域名、目录或其他服务器空间上,当用户发出相应的访问请求时将自动跳转到指定的位置。
常见的重定向有301(永久重定向)及302(暂时重定向)两种。重定向常用于域名或者目录变更的情况,可以有效实现新旧域名或者新旧目录之间的无缝对接。不管是对于普通用户还是搜索引擎都是十分友好的,但由于一小部分人利用重定向向搜索引擎返回经过特别优化甚至是作弊的页面,搜索引擎已经把部分重定向方式列入违规行为的行列(请参考
11.6节)。
为了避免陷入URL重定向的误区,接下来除了介绍URL重定向的实现方式以外,还会对URL重定向过程中需要注意的问题进行详细的说明。
4.9.1 301重定向
301重定向又称为永久性重定向,适用于网站域名或者网页存储目录永久性更改的情况(这种方式对搜索引擎最为友好)。Google、搜狗等搜索引擎在这方面支持得非常好,而百度在这方面的支持是非常差的,尽管已经使用百度提供的301重定向处理工具。在搜索引擎优化中,301重定向还常用于实现URL静态化。
对于301重定向的实施,有以下几个常用的方法。
1. 在.htaccess文件中增加301重定向指令采用mod_rewrite技术,形式如下所示:
RewriteEngine on
RewriteRule ^(.*)$ http://www.seochat.org/$1 [R=301,L]2. Apache 服务器
方法1:
<VirtualHost *>
ServerName [URL]www.10flash.net[/URL]
RewriteEngine On
RewriteRule ^/(.*)$ [URL]http://www.seochat.org/$1[/URL] [R=301,L]
</VirtualHost>方法2:
<VirtualHost 219.133.X.X>
Redirect/http://www.seochat.org/
ServerName www.10flash.net
</VirtualHost>3. IIS服务器
打开Internet信息服务管理器,在要重定向的网页或目录上点击右键,选择“重定向到URL”,在“重定向到”输入框中输入要跳转到的目标网页的URL地址,再选中“资源的永久重定向”(切记)→ 最后点击“应用”即可。
4. 高级语言实现(ASP/PHP/ASP.NET)
ASP:
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://www.seochat.org/"
Response.EndPHP:
header("HTTP/1.1 301 Moved Permanently");
header("Location:http://www.seochat.org/");exit();
4.9.2 302重定向
302重定向又称为暂时性转移(Temporarily Moved),常见的302重定向包括meta重定向及JavaScript重定向(请参考11.6节)。
4.9.3 URL转发
如果网站启用新域名,需要把旧域名的访问请求重新引导到新域名上,那么还可以使用URL转发的方式实现(目前,一般的虚拟主机服务商都会提供域名URL转发管理功能)。
例如,要把对 http://www.seoers.com.cn的访问请求转至http://www.seochat.org,则在主机名上填上旧域名,转发地址上填上新域名或者URL即可,如图4-15所示。

目前,URL转发是完全合法的。例如,目前淘宝上很多店家都会使用独立域名转发至淘宝的网店上。
在网站更换域名或者在路径、文件名发生变化的时候,不管该变化是永久性的还是临时性的,强烈建议使用301重定向的方式实现。因为,301重定向是目前已知最安全的方法。就Google而言,它还会把外部链接等权重转移至新域名、路径或文件下。




本书评论