-3

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

<?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

4 回答 4

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

于 2013-11-07T04:14:18.373 回答
1

嗨实际上标题(“位置:另一个站点的网址”);在 wordpress 中不支持。取而代之的是,您可以使用

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

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

于 2013-11-07T09:20:12.070 回答
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>

于 2013-11-07T05:25:40.730 回答
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

于 2013-11-07T04:10:58.757 回答