在PHP中重定向到页面

时间:2013-11-07 04:03:54

标签: php wordpress redirect output-buffering

我正在尝试根据其引荐来重定向到页面。布局就像

<?php
$URL_REF = $_SERVER['HTTP_REFERER'];
if($URL_REF == "url of my site") {
    header("Location: url of another site"); 
    exit();
}
else    {
    header("Location: my home page"); 
    exit();
}

?>

我收到错误:Cannot modify header information - headers already sent by

我必须将我的php.ini修改为output_buffering = On但我不能这样做,因为我在hostgator中有一个共享主机帐户。 任何人都可以建议我现在有什么选择吗?我可以通过更改我的代码来实现吗?如果是,那么改变了什么?

4 个答案:

答案 0 :(得分:1)

<?php
function custom_redirect() {
$URL_REF = $_SERVER['HTTP_REFERER'];
if($URL_REF == "url of my site") {
    header("Location: url of another site"); 
    exit();
}
else    {
    header("Location: my home page"); 
    exit();
}
}
add_action('init','custom_redirect');
?>

尝试将您的功能挂钩到INIT HOOK

答案 1 :(得分:1)

嗨其实是标题(“位置:另一个网站的网址”);不会支持wordpress。而不是这个你可以使用

<?php wp_redirect( 'http://www.example.com', 301 ); exit; ?>

并且对于主页,只需使用<?php wp_redirect( home_url() ); exit; ?> 这将解决您的重定向问题。

答案 2 :(得分:0)

尝试使用javascript代替

<?php
$URL_REF = $_SERVER['HTTP_REFERER'];
if($URL_REF == "url of my site") {
   ?>
   <script type="text/javascript">window.location = "http://www.yoururl.com";</script>
   <?php
}
else    {
    ?>
     <script type="text/javascript">window.location = "http://www.anotherlocation.com";</script>
    <?php
}

?>

检查参考here

答案 3 :(得分:0)

已发送的标题信息是wordpress的常见错误,就像您提到的要重定向网站,然后您必须选择要遵循。

  1. 创建wordpress模板文件不要在该文件中调用标题

    <?php /* Template Name:Redirect*/ ?> <?php //get_header();?> <!-- Do not un comment this function -->Write your code here Write your code here Write your code here Write your code here <?php get_footer();?>

  2. 或者您可以使用java脚本的window.location函数重定向

    <script>document.write(location.http://google.com); </script>