关于301重定向的好处,和一般301重定向的方法,网上有很多,笔者就不重复了,今天要说的,是PHP网站通过修改PHP网页的形式做好301重定向。
前段时间,笔者网站更换域名,在做301重定向时,搜索了网上很多帖子,发现很多都罗列了各种方法,却都没有具体将怎么操作,比如PHP网站,就是写出下面一段代码了事
PHP代码
<? Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: http://www.zhaoan.org" );?>
这个代码只适应于网站迁移的情况,即旧站和新站域名不同、根目录也不相同的情况。如果网站属于一个网站绑定2个域名,2个域名的根目录为同一个,那么,就会行成死循环。在此,笔者将PHP网站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.zhaoan.org')//这是我要以前的域名地址
{
header('HTTP/1.1 301 Moved Permanently');//发出301头部
header('Location: http://www.xxxx.net'.$request_uri);//跳转到我的新域名地址
}
?>
其中if($the_host !== 'www.zhaoan.org')中的“!==”是不完全等于的意思,也可以用“!=”不等于,这样,就可以将以前的域名,包括zhaoan.com、www.xxxx.com以及新域名中我zhaoan.net全部重定向到www.xxxx.net。
二、在网页文件中调用301.inc.php
<?php include("301.inc.php"); //301重定向 ?>
将这个代码放到你所有网页的最前面。
好了,重定向就做好了,将301文件上传到网站目录,就可以去看着你的成果了。
对于linux的虚拟主机,apache的服务器,支持.htaccess。购买空间前可以咨询一下是否支持。把不带www的301到带www的,只要在.htaccess 文件加入以下代码便可。
- RewriteCond %{http_host} ^zhaoan.org [NC]
- RewriteRule ^(.*)$ http://www.zhaoan.org/$1 [R=301,L]
如果是把其他的域名301到你的首选域可以是这样:
- RewriteCond %{HTTP_HOST} ^xxxxx.com [NC]
- RewriteRule ^(.*)$ http://www.zhaoan.org/$1 [L,R=301]
- RewriteCond %{HTTP_HOST} ^www.xxxxx.com [NC]
- RewriteRule ^(.*)$ http://www.zhaoan.org/$1 [L,R=301]
对于windows主机,那么我修改http.ini文件便可。加入如下代码
- RewriteCond Host: ^zhaoan\.org$
- RewriteRule (.*) http\://www\.zhaoan\.org$1 [R,I]
如果不行可以加入以下代码
- [ISAPI_Rewrite]
- # 3600 = 1 hour
- CacheClockRate 3600
- RepeatLimit 32
- RewriteCond Host: ^zhaoan\.org$
- RewriteRule (.*) http\://www\.zhaoan\.org$1 [I,RP]
301重定向检测工具,可以检测你是否做好了301重定向
如果你的网站是asp写的,可以参考ASP网站301定向跳转方法
另外推荐一个制作.htaccess文件的网站,对于不太熟习的朋友可以去看看:www.htaccesseditor.com/sc.shtml
文章评论