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

2015年3月8日06:18:4035,707 1371字阅读4分34秒

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

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

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

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

<?php
/*
o******************************o
* *
*文件:301.php *
*功能:用于301转向。 *
*版本:终极版*
*URL:http://LsevenTT.com *
* *
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='LsevenTT.com';//主站域名
$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';语句将其包含进去,这就可以实现多域名转向至同一站点了。

 

继续阅读
本文章来自站群哥LsevenTT博客~转载请注明出处
多域名对应同一网站、跳转的方法及泛域名设置详解 SEO相关

多域名对应同一网站、跳转的方法及泛域名设置详解

不断有朋友在博客问关于多个域名指向同一网站的问题,按说这是一个很基础很简单的问题,但对新手来说,可能有些误解,我在这里详细说下。 这里多个域名指向同一网站,是指裸域名(root domain)和其他如带www的域名指向同一网站。如输入abc...
用PHP根据IP地址判断访问者所在省份,显示不同内容 SEO相关

用PHP根据IP地址判断访问者所在省份,显示不同内容

  在进行网站开发的过程中,有时候我们需要获取访问者的IP地址,根据访问者的IP地址,判断他所在的省份,然后呈现给访问者不同的内容。下面我们介绍一下使用淘宝的IP库来实现对指定省份显示指定内容的方法。 代码如下: <?php...
php根据ip段控制显示广告 PHP相关

php根据ip段控制显示广告

  以下代码是 PHP根据IP段控制显示广告   <?php function getIP() { $realip = ''; //设置默认值 if (isset($_SERVER)) { $realip = $_...
PHP模拟百度URL加密解密算法 PHP相关

PHP模拟百度URL加密解密算法

PHP模拟百度URL加密解密算法的代码如下 <?php $time = time() . rand(1000, 9999); $data = "{$time}###https://www.lseventt.com"; // 被加密信息...

评论已关闭!

评论:3   其中:访客  1   博主  2
    • Michael
      Michael 0

      如果是用Nginx服务器,可以直接在conf文件中配置主机名重定向 :grin: