php如何获取301重定向前的域名

我有个域名重定向到另一个,如何获取重定向的来路好提醒来自老域名的用户我换域名了

首先找到你网站的入口文件,一般都是在根目录里的 index.php 这个文件,用编辑器打开它,在这里推荐您使用 Dreamweaver 这个软件,功能很强大的,如果您电脑上没有安装有这个软件,也可以使用记事本,这就是最简单的编辑器了。

打开了,在所有代码的最前面加上以下代码即可,当然,所指的最前面没有包涵 PHP 标识符,如果连这个都没有了,代码是无法运行的,因为它是 PHP 语言。

先上张图看看吧。

使用说明:

$getUrl= $_SERVER['SERVER_NAME'] 是获得当前输入的 url 地址,也就是说访问者在浏览器地址里输入的域名地址。

$jumpUrl 这个变量是要跳转到的 url 地址,也就是您网站的主域名。

如果您的网站是多个域名访问的,可以保留判断是否是主域名这段代码,如果你只有一个域名进行访问,可以把这一段删除即可,关于如何使用这段代码,在笔者贴上来的代码里有说明,按照说明进行修改就行了。

这些设置好了之后,进行保存,上传到您网站覆盖原来的 index.php 文件,这样,就做好了 301 跳转了。


笔者就拿 www.a.comwww.b.com 这两个域名来进行说明,当访问者在浏览器的地址栏输入 a.com 时,自动跳转到 www.a.com ,当访问者在浏览器的地址栏输入 b.com ,或者输入 www.b.com 时,自动跳转到 www.a.com 。 

在这里使用到 $_SERVER['SERVER_NAME'] 的 PHP 系统函数获得传进来的域名 URL 。

PHP 里的 substr() 是用来截取字符串的一部分,应该会使用的吧,里面主要有三个参数,第一个参数是传进来的字符串,这个参数是必须的;第二个参数是从第几个开始截取,也是必须的;第三个是截多长的字符串,是可选的。

代码片段:

$getUrl= $_SERVER['SERVER_NAME'];// 获得当前输入的 url

$jumpUrl= 'Location:http://www.a.com';// 要进行跳转的 url


if(substr($getUrl,0,4)!='www.'){// 判断 url 中是否带 www

redirect($jumpUrl);

}


if(substr($getUrl,0,1) == 'b' || substr($getUrl,4,1) == 'b'){// 判断是否是主域名

redirect($jumpUrl);

}

/* 如果有多个域名,可以继续添加

 * 不想多解释,你应该明白的,

 */


// 跳转函数

function redirect($jumpUrl){

header('HTTP/1.1 301 Moved Permanently');

header($jumpUrl);// 301 跳转到设置的 url

exit();

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-12-05
//试试这个
$host = parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST);

本回答被网友采纳
相似回答