我从搜索引擎检测到我的网站工作者的搜索词后,我正在使用php脚本进行重定向。
我的重定向代码工作正常
但对于一些关键词我会留在同一页面。对于那些代码行,我在那些页面中收到了警告信息。
Warning: headers already sent
(output started at /home/friendsj/public_html/index.php:2) in
/home/friendsj/public_html/index.php on line 20
下面是我在该页面中使用的代码
$ref=$_SERVER['HTTP_REFERER'];
if(strstr($ref,"test")){
$url="http://www.howtomark.com/robgoyette.html";
}
else if(strstr($ref,"mu+word+gmail")){
$url="http://www.howtomark.com/marketbetter.html";
}
else{
if(strstr($ref,"how+to+market+better")){
}
}
if($url !=""){
header("Location:$url");
}
答案 0 :(得分:1)
重定向是通过设置HTTP标头来完成的,正如使用header()
函数所暗示的那样。这意味着您只能在开始文档输出之前重定向。无论你在第2行开始打印什么,都可以在以后再做; - )
答案 1 :(得分:0)
删除在index.php第二行开始的所有输出
答案 2 :(得分:0)
如果您正在使用Header功能,则在调用该函数之前不允许输出内容。
在你的情况下,你在第2行写了关于index.php输出的内容。
一个糟糕的解决方法是使用输出缓存函数ob_start。 但这不是一个真正的解决方案。
答案 3 :(得分:0)
试试这个
<?php ob_start();
$ref='some text goes here';
if(strstr($ref,"test")){
$url="http://www.howtomark.com/robgoyette.html";
}
else if(strstr($ref,"mu+word+gmail")){
$url="http://www.howtomark.com/marketbetter.html";
}
else{
if(strstr($ref,"how+to+market+better")){
}
}
if(isset($url) && !empty($url)) {
header("location:$url");
}
ob_flush();
?>