301重定向代码及使用

By admin | 01月 24, 2010

关于301重定向的好处,和一般301重定向的方法,网上有很多,笔者就不重复了,今天要说的,是网站通过修改网页的形式做好301重定向。

下面以php代码为示例:

一般网上能找到的301重定向代码都是:

PHP代码
<? Header( ”HTTP/1.1 301 Moved Permanently” );
Header( ”Location: http://www.abc.com” );?>

这个301重定向代码只适应于网站迁移的情况,即旧站和新站域名不同、根目录也不相同的情况。如果网站属于一个网站绑定2个域名,2个域名的根目录为同一个,那么,就会行成死循环。

下面这个301重定向代码只适应于网站首页的301重定向,如果网站已经被收录,或存在大量的非首页外链,要全部301重定向过来,那就无能为力了。更合适的方法是使 用.htaccess来定向,简单快捷,不过笔者不懂这个,在此,笔者将PHP网站301重定向方法完全放出,希望能帮到新人,如果有不足之处,也请高手 指出,不胜感激。

一、建立一个301.inc.php(文件名自取)
<?php
$the_host = $_SERVER[’HTTP_HOST’];//取得进入所输入的域名
$request_uri = isset($_SERVER[’REQUEST_URI’]) ? $_SERVER[’REQUEST_URI’] : ’’;//判断地址后面部分
if($the_host !== ’www.xunihost.com’)//这是我要以前的域名地址
{
header(’HTTP/1.1 301 Moved Permanently’);//发出301头部
header(’Location: http://www.xxx.net’.$request_uri);//跳转到我的新域名地址
}
?>

其 中if($the_host !== ’www.xunihost.com’)中的“!==”是不完全等于的意思,也可以用“!=”不等于,这样,就可以将以前 的域名,包括jinjie168.com、www.xxx.com以及新域名中我xunihost.com全部重定向到www.xxx.net。

二、在网页文件中调用301.inc.php
<?php include(“301.inc.php”); //301重定向 ?>
将这个301重定向调用代码放到你所有网页的最前面。

好了,301重定向就做好了,将301文件上传到网站目录,就可以去看看你的成果了。

通过上面的例子相信大家可以在各种代码下操作了,下面就来看看各种情况下的301重定向代码:

1、IIS下301重定向设置

Internet信息服务管理器 -> 虚拟目录 -> 重定向到URL,输入需要转向的目标URL,并选择“资源的永久重定向”。

2、ASP下的301重定向代码

<%@ Language=VBScript %>
<%
Response.Status=”301 Moved Permanently”
Response.AddHeader “Location”, “http://www.jinjie168.com/articles/301/”
%>

3、ASP.Net下的301重定向代码

<script runat=”server”>
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = “301 Moved Permanently”;
Response.AddHeader(”Location”,”http://www.jinjie168.com/articles/301/“);
}
</script>

4、PHP下的301重定向代码

header(”HTTP/1.1 301 Moved Permanently”);
header(”Location: http://www.jinjie168.com/articles/301/”);
exit();

5、CGI Perl下的301重定向代码

$q = new CGI;
print $q->redirect(”http://www.xunihost.com/”);

6、JSP下的301重定向代码

<%
response.setStatus(301);
response.setHeader( “Location”, “http://www.xunihost.com/” );
response.setHeader( “Connection”, “close” );
%>

7、Apache下301重定向代码

新建.htaccess文件,输入下列内容(需要开启mod_rewrite):

1)将不带WWW的域名转向到带WWW的域名下

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^lesishu.cn [NC]
RewriteRule ^(.*)$ http://www.xunihost.com/$1 [L,R=301]

2)重定向到新域名

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(.*)$ http://www.xunihost.com/$1 [L,R=301]

3)使用正则进行301重定向,实现伪静态

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^news-(.+)\.html$ news.php?id=$1

将news.php?id=123这样的地址转向到news-123.html

8、Apache下vhosts.conf中配置301重定向

为实现URL规范化,SEO通常将不带WWW的域名转向到带WWW域名,vhosts.conf中配置为:

<VirtualHost *:80>
ServerName www.xunihost.com
DocumentRoot /home/lesishu
</VirtualHost>

<VirtualHost *:80>
ServerName lesishu.cn
RedirectMatch permanent ^/(.*) http://www.xunihost.com/$1
</VirtualHost>

Apache下除了以上2种方法,还有其他配置方法和可选参数,建议阅读Apache文档。

301重定向情况检测

  1. http://www.seoconsultants.com/tools/headers.asp
  2. http://www.internetofficer.com/seo-tool/redirect-check/

10 comments | Add One

  1. 小王 - 01/24/2010 at 10:56 #

    很好,很全面。介绍也比较详细

  2. 游客 - 03/2/2010 at 14:05 #

    提供的这两个检测工具挺实用的

  3. mengmeng - 03/4/2010 at 13:51 #

    谢谢,学习了

  4. 倩舞飞杨 - 03/6/2010 at 12:33 #

    怎么只有PHP的使用方法,有没有其它的代码使用方法

  5. admin - 03/15/2010 at 07:21 #

    这是个例子,你可以根据它自己写出其他代码的使用方法

  6. 宁波网站优化 - 05/5/2010 at 18:48 #

    学习了,可是买的国外空间可以这样设置301吗?

  7. admin - 05/5/2010 at 21:10 #

    也可以的,国外空间内大部分都有.htaccess文件,通过它设置更简单一些。第7条就是它的设置方法

  8. 减肥美容网 - 06/14/2010 at 15:05 #

    很不错 我的是asp 好像不怎么详细

  9. tBj80Rkz - 08/5/2010 at 01:01 #

    I want to post quick hello and want to say appriciate for this good article.

  10. JoanTHOMAS19 - 08/5/2010 at 11:22 #

    Some specialists say that loans help people to live the way they want, just because they can feel free to buy necessary goods. Furthermore, banks offer bank loan for different classes of people.

请您发表评论

姓名 (必填)

Email (不会公开) (必填)

网站


站内搜索