基于referer的url重定向

时间:2010-06-12 13:49:42

标签: php redirect http-referer

我正在尝试根据引荐网址将访问者重定向到某个网站。

这是脚本:

php
$domain='blankds.com';
$referrer=$_SERVER['HTTP_REFERER'];
echo $referrer;
if (preg_match("/$domain/",$referrer)) {
 header('Location: http://www.blackisgreen.org/page_1.php');
 } else {
 header('Location: http://www.blackisgreen.org/page_2.php');
};

错误:我收到“警告:无法修改标头”错误,因为我在发送标头之前回显$ referrer。

如果删除回显,则脚本不起作用。

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

PHP正在echo $referrer向请求该页面的用户发送标题。您正在调用标头功能,尝试修改这些标头并附加位置重定向,但不能将标头与页面内容的开头一起发送。

要解决此问题,请查看PHP的Output Control函数,尤其是ob_start();,它们会在您脚本顶部插入,以允许您继续回显重定向位置并允许您重定向同时。

答案 1 :(得分:0)

正如笔记:任何输出都会自动生成标题。如果你想用标题重定向,你只需要注释echo $referrer;如果你需要查看哪个引用者去哪个站点进行调试,只需将它放在URL中,接收页面就应该忽略它。