如何设定网站的301重定向自动添加www?

“301 永久重定向”是一种对搜索引擎最友好的一种重定向方式。 你有可能会在下面几种情况下用到它:

  • 把你旧的博客定向到新的网址。
  • 使你博客的网址只有一种访问方式(有www或者没有www)
  • 使你的URL结构修改后保持一致。

有很多中设定301重定向的方法,下面我将就几种常用的来说明一下:
PHP 单页面重定向
你只要在 index.php 文件中加入一下代码就可以把一个静态的网页重定向到一个新的网址:

<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.newdomain.com/page.html");
exit();
?>

PHP 典型重定向
典型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']);
}
?>

利用 .htaccess 文件进行单页重定向
为了能够使用到这种方法,你必须要在你网站的根目录下建立一个.htaccess文件 (该文件在 Windows-based 主机中不支持) ,然后在你的.htaccess文件加入如下代码:

Redirect 301 /old/oldpage.htm /new/http://www.domain.com/newpage.htm

.htaccess 文件典型重定向
就像上一步那样添加.htaccess文件,不过添加的代码应该如下 (这些代码将会使所有访问 http://domain.com 的都定向到 http://www.domain.com):

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 典型重定向
ASP 典型重定向必须位于服务器执行每一页的脚本那里,并应在每页的内容开始之前:

<%
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
%>

原文:How to setup a 301 Redirect
最后标注一下自己在drupal的简单方法:
打开网站根目录下的.htaccess文件,修改
 # RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
 # RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]

    RewriteCond %{HTTP_HOST} ^chengzhang\.info$ [NC]
    RewriteRule ^(.*)$ http://www.chengzhang.info/$1 [L,R=301]

评论

重新定向会不会遭搜索引擎处罚呢

重新定向会不会遭搜索引擎处罚呢

发表新评论

此内容将保密,不会被其他人看见。