如何设置301重定向 2013年08月07日

如何设置301重定向

301重定向,又称页面永久性移走,是一种非常重要的“自动转向”技术,而301永久重定向则是目前最高效、最友好(搜索引擎)的网址重定向的方法。在以下一些情况下可以使用301重定向:
  • 将旧网址重定向到新网址
  • 设置多个域名指向同一个网站
  • 只执行一个版本的地址(www或没有www),即将不带www的域名指向www域名
  • 协调URL结构变化
 
有几种方法都可以设置301重定向,主机91在这里为大家介绍几种最常用的方法。

PHP单页重定向

重定向一个静态页面,只需要将以下代码写入 index.php文件中。
 
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.newdomain.com/page.html");
exit();
?>
 

PHP Canonical 重定向

Canonical 301重定向将增加或减少所有页面的www前缀,下面这串代码可以实现将http://domain.com 定向到http:www.domain.com。
 
<?php
if (substr($_SERVER['HTTP_HOST'],0,3) != 'www') {
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://www.'.$_SERVER['HTTP_HOST']
.$_SERVER['REQUEST_URI']);
}
?>

Apache .htaccess 单页重定向

使用Apache重定向需要新建一个.htaccess文件(不适用于Windows主机),然后将.htaccess文件放入网站的根目录里,并将下列代码写进.htaccess文件。
 
Redirect 301 /old/oldpage.htm /new/http://www.domain.com/newpage.htm

Apache .htaccess Canonical 重定向

和Apache .htaccess 单页重定向一样,先创建.htaccess文件,再放入网站根目录,再将下列代码写入.htaccess文件。
 
Options +FollowSymlinks
RewriteEngine on
rewritecond %{http_host} ^domain.com [nc]
rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc]

ASP单页重定向

ASP单页重定向需要在Active Server Pages平台上设置。代码为:
 
<%
Response.Status="301 Moved Permanently"
Response.AddHeader='Location','http://www.new-url.com/'
%>

ASP Canonical 重定向

ASP环境下的Canonical重定向可通过以下代码实现,这些代码在每个页面上都会最先被执行。
 
<%
If InStr(Request.ServerVariables("SERVER_NAME"),"www") = 0 Then
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://www."
& Request.ServerVariables("HTTP_HOST")
& Request.ServerVariables("SCRIPT_NAME")
End if
%>
 
以上是一些常用的设置301重定向的方法,不过和302重定向不同,301重定向具有永久性,所以大家需要谨慎地设置301重定向。
分享到:
RuHeFaBuWangZhan
推荐阅读