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';语句将其包含进去,这就可以实现多域名转向至同一站点了。
评论:
分类
最新日志
- python2.7.5升级到python3.5.1
- Excel判断一个单元格内内容是否在另一列中存在(出现过)
- excel文件没多少内容文件却很大怎么办?如何快速删除excel表中隐藏对象?
- mysql按指定顺序排序
- linux centos防止暴力破解,封掉多次失败的IP地址
- windows如何像linux使用ln一样创建目录链接
- 如何让linux支持rar压缩文件格式压缩和解压
- 如何创建一个自签名的SSL证书【转】
- Excel求某列值等于指定值对应另一列值的平均值
- centos 搭建git php自动部署。
- wget递归下载ftp内容,用户或密码中含有@。
- Linux/Centos源码安装配置Nginx+PHP+MySQL
- mysql视图学习记录
- screen命令让linux关闭ssh后进程继续运行。
- MySQL一次查询所有分类前N条记录
随机日志
- mysql远程链接很慢解决办法
- 今天将ubuntu12.04升级到13.04
- .htaccess非伪静态url跳转到伪静态url再伪静态
- apache .htaccess强制访问手机,电脑页面
- Microsfot .NET Framework 4安装未成功解决方法
- 儿子高烧终于退了
- 接相关部门通知,本站暂时作关闭评论处理
- apache将其他域名(如带www的域名)转向不带www的域名
- 又一个中秋佳节
- access数据库中时间转mysql时间戳
- mysql insert插入语句性能优化
- 今天闲来没事,虚拟机安装个CentOS6.4玩玩。
- 腾讯云服务器快照恢复删除的数据
- mysql数据库表A中某列update更新至表B中某列
- apache伪静态参数超过9个的解决办法
存档
- 2018年11月(1)
- 2017年12月(1)
- 2017年7月(1)
- 2017年5月(5)
- 2017年4月(1)
- 2016年10月(1)
- 2016年6月(1)
- 2016年5月(1)
- 2016年4月(3)
- 2015年12月(1)
- 2015年11月(1)
- 2015年5月(1)
- 2015年3月(1)
- 2015年2月(1)
- 2014年9月(2)
- 2014年7月(2)
- 2014年5月(1)
- 2014年4月(3)
- 2014年3月(3)
- 2014年1月(2)
- 2013年12月(1)
- 2013年11月(4)
- 2013年10月(2)
- 2013年9月(1)
- 2013年8月(2)
- 2013年6月(3)
- 2013年5月(1)
- 2013年4月(3)
- 2013年2月(3)
- 2012年12月(3)
- 2012年11月(5)
- 2012年10月(1)
- 2012年8月(2)
- 2012年7月(2)
- 2012年5月(3)
- 2012年4月(1)
- 2012年2月(2)
- 2011年11月(2)
- 2011年9月(1)
- 2011年8月(2)
- 2011年7月(2)
- 2011年5月(1)
- 2011年3月(3)
- 2011年2月(2)
- 2010年12月(1)
- 2010年11月(2)
- 2010年10月(3)
- 2010年9月(9)
- 2010年8月(8)
- 2010年7月(13)
- 2010年6月(18)
- 2010年5月(24)
- 2010年4月(10)
- 2010年3月(14)
- 2010年2月(6)
- 2010年1月(7)
- 2009年11月(2)
- 2009年10月(3)
- 2009年9月(3)
- 2009年8月(8)
- 2009年7月(15)
- 2009年6月(14)
- 2009年4月(2)
- 2008年12月(1)
- 2008年6月(1)
- 2008年5月(10)
- 2008年4月(9)
- 2008年3月(5)
- 2008年2月(2)
- 2008年1月(5)
- 2007年12月(4)
- 2006年9月(6)
- 2006年7月(1)
2013-03-05 11:21