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)图标,如图所示:
2、点击上图中重定向(Redirects)图标,进入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重定向。