寒窗轩,寒川的个人网络博客,记录互联网事,学习网络编程、分享工作经验、人生感悟,包括但不限于程序代码、数据库、Office办公、随笔等内容。

php实现多个域名指向同一网站的301转向

前不久,一哥们儿在给我博客做SEO的时候建议我做个301转向,因为我的博客为两个域名(huikon.cn及www.huikon.cn)同时访问同一个站点,需要做个主站,其他域名通过301转向到主站,以免搜索引擎分担主站的权重。开始的时候准备通过修改.htaccess实现301转向,不过貌似本博客用的nginx服务器,也没有服务器配置权限,看来只能通过修改php文件实现301转向了。

开始直接在核心文件(如:config.php等配置文件)中添加301转向代码,但是因为两个域名指向的是同一个网站,不论访问那个域名,都出现“死循环”的现象(用IE浏览器一直加载但无法打开页面,用Google浏览器提示转向循环)。要解决死循环还是比较简单的,判断一下访问的主机就ok了,方法如下:

$host='huikon.cn';//主站域名
if($_SERVER['HTTP_HOST']!=$host)
{
header('HTTP/1.1 301 Moved Permanently');//发出301头部
header('Location:'.$host);
}

将上述代码放入核心文件中,虽然能够转向,但是问题又来了,一旦访问非huikon.cn的域名的其他页面结果全部都转到huikon.cn的主页页去了,能否一对一的301转向呢?答案当然是肯定的,php确实够强大,呵呵~~完整的多域名301转向至同一网站代码如下:

<?php
/*
o******************************o
* *
*文件:301.php *
*功能:用于301转向。 *
*版本:0.1 *
*作者:寒川 *
*URL:http://huikon.cn *
* *
o******************************o
*/

function get_file_parameter($auNo='')//获取特定网址后的文件及参数
{
$self_name=$_SERVER['PHP_SELF'];
$url_parameter=$_SERVER["QUERY_STRING"];
$sn="";
if(1==$auNo)
{
$pCut=explode("/",$self_name);
$pCount=substr_count($self_name,"/");
for($i=0; $i<$pCount;$i++)
{
$sn.=$pCut[$i]."/";
}
}
else
{
$sn=$self_name;
}
if(empty($url_parameter))
$url=$sn;
else
$url=$sn."?".$url_parameter;
return $url;
}


$host='huikon.cn';//主站域名
$url='http://'.$host.get_file_parameter();

if($_SERVER['HTTP_HOST']!=$host)
{
header('HTTP/1.1 301 Moved Permanently');//发出301头部
header('Location:'.$url);//转向
}
?>

将上述代码储存为301.php,在核心文件(或需要转向的文件)中通过require_once '301.php';语句将其包含进去,这就可以实现多域名转向至同一站点了。

程序 2010-06-04 09:18:42 0 0 4346 php编程301转向SEO优化

昵称:

验证码:验证码

评论:

文章分类
系统
程序
数据
Office
随笔
热门文章
pdf、word、txt、excel等文档转flash(swf)软件—虚拟打印机FlashPaper
Excel文件内容很少,但文件很大,打开很慢、很卡怎么办?
PHP以Excel模板填充数据并生成新的Excel文件
PHP实现远程下载,并显示实时下载进度
记一次Seafile数据迁移
2020开局不顺
基于ThinkPHP6的API注释文档自动生成扩展
饥饿站台观后感
CentOS无法删除文件怎么办
开篇第一章
文章推荐
请不要奇怪,为什么最近博客的文章是几年前的内容
免责声明
关于博主
开篇第一章
随机推荐
教训
摸死你个性签名集合
感觉不太明显。。。。
搜索引擎优化(SEO)学习
php遍历文件夹读取文件夹中图片并分页显示图片
php检查数组中是否含有指定字符
终于下雨了
伤心的虚拟主机
如何用正则表达式匹配指定字符开始和指定字符结束
感冒了
友情连接
春燕网络