重定向

重定向,是什麽?

在解释这个之前,先说说最常用的301重定向。

如果您需要更改某个网页在搜索引擎结果中显示的网址,建议您使用服务器端301重定向。这是确保用户及搜索引擎定向至正确网页的最佳方法。301状态代码表示某网页已永久迁移至新位置。

上面这段就是Google 站长工具所说的网站迁移是所需要做的301重定向。这个对于很多站长都是非常常见的一个操作。

好吧,回到开头的问题,就是什麽是重定向。

简而言之,就是从一个页面的URL,重新定向到另外一个页面的URL。

重定向的种类

重定向有好多种,比如上面说的301啊,还有302啊,其实按照技术标准来分,3xx的返回码都是重定向类,下面挨个来说说。

300 Multiple Choices

客户请求的文档可以在多个位置找到,这些位置已经在返回的文档内列出。如果服务器要提出优先选择,则应该在Location应答头指明。

301 Moved Permanently

客户请求的文档在其他地方,新的URL在Location头中给出,浏览器应该自动地访问新的URL。

302 Found

类似于301,但新的URL应该被视为临时性的替代,而不是永久性的。

303 See Other

类似于301/302,不同之处在于,如果原来的请求是POST,Location头指定的重定向目标文档应该通过GET提取

304 Not Modified

客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用。

305 Use Proxy

客户请求的文档应该通过Location头所指明的代理服务器提取

307 Temporary Redirect

和302(Found)相同。许多浏览器会错误地响应302应答进行重定向,即使原来的请求是 POST,即使它实际上只能在POST请求的应答是303时才能重定向。由于这个原因,HTTP 1.1新增了307,以便更加清除地区分几个状态代码: 当出现303应答时,浏览器可以跟随重定向的GET和POST请求;如果是307应答,则浏览器只能跟随对GET请求的重定向。

重定向的实现级别

一种是在服务器端做,比如在Apache服务器上,可以使用的mod_rewrite,在.htaccess文件里设置好,用户访问的网址在到达服务器后,就会返回新的网址。

另一种是在页面级别的,就是把跳转卸载页面中,可以用javascript,也可以用php等。

还有一种是 meta refresh,也可以做到。

重定向的测试

测试的方法有很多,这里介绍的是我用的,也是我写的一个测试工具。

HTTP Status 检测器

可以用来测试301重定向等。


作者: David Yin
原载: SEO 网站优化推广
版权所有。转载时必须以链接形式注明作者和及本声明。