本文章由SEO校内提供 作者:hqyseo
今天主要讨论http协议中301状态码的重定向的使用。可以用mod_rewrite或PHP来实现它。
当使用mod_rewrite 时,除了必须定义一个重定向状态码作为参数以外,重定向的实现于url重写301非常类似。当初始请求为 foo.php时,以下的规则用一个301重定向至bar.php:
rewriterule^foo\.php$ /bar.php [R=301,L]
除了末尾那个新的“R”选项以外,这里根本没有什么新东西——但就是那个选项代表了一些重要的差异!其实无论有没有“R”选项,访问者最终都将明显地看到bar.php提供的内容。然而,当使用重定向时,用户的WEB客户端实际是向web服务器发出两个调用。首先请求foo.php;在响应http报头中得到一个301重定向代码,指定bar.php为新位置。然后WEB客户端请求bar.php,并通过更新显示在地址栏中的URL地址,告知用户加载了新的URL地址。
在PHP中,通过使用header()函数来添加HTTP报头,从而实现重定向。如果想把foo.php用301重定向至bar.php, foo.php将如下所示:
header('http/1.1 301 moved permanently');
header('Location: 主域名/bar.php');
>
如果返回报头中只有location,但没有明确提到状态码时,就意味着302临时重定向。请牢记!
实际的运用中,如果在站点重新设计时需要改变rul地址,那么这个网站的管理员就至少应该将最重要的地址用301重定向至与它相对应的新地址。否则,链接价值就会丢失。
使用一系列的301重定向可以减少这种问题。如果站点已经被SE索引,就需要很有条理的把老的url地址重写为新的url地址。
希望这些能对大家有用。大家有什么好的东西可以来分享一下!
转载请注明http://www.seoxn.org.cn