当前位置: 首页 > SEO博客 > php网站整站301跳转的实现方法

php网站整站301跳转的实现方法

时间:2011-11-02 20:30:01
之前笔者介绍过一个基于IIS环境的静态网站的整站301跳转的做法,最近笔者将php网站的整站301跳转做法也在客户那里实施了一下,在这里跟广大SEOer们分享一下。

本次在客户那里做的整站301跳转的是一个基于joomla开发的一个网站,本来打算采用apache的rewrite规则来实现的,无奈joomla自带了一些rewrite规则,导致做的一些域名的整站跳转有一些问题,最后只好取消掉那种做法。由于joomla系统是基于templates来实现的,所以我就找了一下每个页面都需要运行的模板首页来做,打算将网址的url分拆,然后重组参数,将其拼凑然后再作301跳转。

这次实践,本人也没有鲁莽,先在根目录下新建了一个test目录,test目录下新建了个test.php,然后及时搜索了一下,拼凑出来了解决办法,经过十分钟左右的调试,终于成功实现,将类似这种页面http://www.seotcs.com.cn/test/test.php顺利跳转到了http://www.seotcs.com/test/test.php。

等不及了?好吧,开始分享核心的东西吧,贴出代码:

<?php
$dest_host="www.seotcs.com";
$uri = $_SERVER['REQUEST_URI'];
$http = (isset($_SERVER['HTTPS'])&&$_SERVER['HTTPS']!='off')?'https://':'http://';
//$port = $_SERVER['SERVER_PORT']=='80'?'':':'$_SERVER['SERVER_PORT'];
$url = $http.$dest_host.$uri;
switch ($_SERVER['HTTP_HOST']){
case "seotcs.com.cn":
header('HTTP/1.1 301 Moved Permanently');
header("location:".$url);
break;
case "www.seotcs.cn":
header('HTTP/1.1 301 Moved Permanently');
header("location:".$url);
break;
case "seotcs.com":
header('HTTP/1.1 301 Moved Permanently');
header("location:".$url);
break;
}

//省略后续代码
?>

在代码中,网站的端口暂时没有采用,一般都采用80端口的,就先省略掉了,如果有的网站的页面还有不同端口的页面,则需要将port那部分代码调试一下再使用。

这个是基于joomla框架采用的方法,如果是其它的php网站的整站301跳转,则需要新建一个php页面,例如301.php,将以上跳转的代码复制进去,然后用其它所有的php页面在顶部包含这一页面,就可以了。当然,如果网站的php文件都有类似top的共同页面,也可以将301跳转的语句写在这里。

总结一下,总体的原理就是:将需要跳转的域名,替换成指定的域名,然后将后面的路径及参数都重新组装,保证页面本来路径的正确性。

希望本次经验的分享,对广大站长或者技术爱好者有用,仅此抛砖引玉了。

 
分享按钮