如何设置301重定向

0
3167

301重定向,又称页面永久性移走,是一种非常重要的“自动转向”技术,而301永久重定向则是目前最高效、最友好(搜索引擎)的网址重定向的方法。在以下一些情况下可以使用301重定向:

  • 将旧网址重定向到新网址
  • 设置多个域名指向同一个网站
  • 只执行一个版本的地址(www或没有www),即将不带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 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文件。

以下将详细讲一讲如何通过修改.htaccess进行301重定向。

注意:在设置301重定向之前务必备份相应目录下的.htaccess文件。

 1.重定向yourdomain.com到www. yourdomain.com

这种重定向主要目的是为了实现网站访问路径的唯一性,对于网站SEO至关重要。

打开.htaccess文件,加入以下规则。(下面的规则是针对主域名的,如果是子域名需要将主域名修改为子域名)

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www. yourdomain.com$ [NC]

RewriteRule ^(.*)$ http://www. yourdomain.com/$1 [L,R=301]

将www.bisend.cn到bisend.cn的原理一样,修改代码方法如下

RewriteEngine On

RewriteCond %{HTTP_HOST} !^ yourdomain.com$ [NC]

RewriteRule ^(.*)$ http:// yourdomain.com/$1 [L,R=301]

2.重定向onedomain.com到otherdomian.com

RewriteEngine On

RewriteBase /

RewriteCond %{HTTP_HOST} !onedomain.com$ [NC]

RewriteRule ^(.*)$ http://otherdomain.com/$1 [L,R=301]

3.重定向domain.com到 otherdomain.com/otherfile/other.php

RewriteCond %{HTTP_HOST} ^ domain.com$

RewriteRule ^file/file.php$ http://www.otherdomain.com/otherfile/other.php [R=301,L]

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

Windows主机IIS下的301转向设置

在IIS 管理后台 -> 选择你要重定向的文件或文件夹 -> 右键”重定向到URL” -> 输入需要转向的目标URL ->选择”资源的永久重定向”。

另外,如果你的Windows虚拟主机空间支持ISAPI_Rewrite,那么在IIS下利用ISAPI_Rewrite不仅可以实现url 重写,还可以用来设置301转向。

如何在cPanel面板中做301重定向?

以上设置301的方法都需要一定的开发背景或者IIS/Apache管理知识,对有些没有技术背景的站长可能设置起来不是那么容易。在我们的Linux主机,都带有cPanel控制面板,能够非常方便让您设置301.

1、首先,进入你的cPanel面板,找到域名(Domains)功能块—>找到重定向(redirects)图标,如图所示:

789SSL,Cpanel,301重定向

2、点击上图中重定向(Redirects)图标,进入301重定向管理界面,如图所示:

789SSL,Cpanel,301重定向

  • 在type(类型)中,选择Permanent(301)
  • 在http://(www.)?中,选择你想做重定向的域名,在后面的文本框中输入你想做重定向的目录。
  • 在redirects to中输入你想重定向到的地址。
  • 在www.redirection中选择Redirect with or without www. (带不带www都重定向),当然如果有其他需要的话你也可以选择其他的选项。
  • 在Wild Card Redirect前的复选框中打钩。
  • 点击Add(添加)即可完成301重定向。

如何检测301重定向是否成功

1、手工检测费方法。直接输入网址会跳转到另外一个网址。

2、 httpwatch 检测工具   安装httpwatch 检测工具,在IE工具栏中 查看——浏览器栏——httpwatch 打开,也可以使用快捷键shift+F2打开。

以上是一些常用的设置301重定向的方法,由于301重定向具有永久性,所以大家需要谨慎地设置301重定向。