-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

こんにちは header("Location: 別のサイトの URL"); wordpress ではサポートされません。これの代わりに使用できます

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

ホームページの場合<?php wp_redirect( home_url() ); exit; ?> 、これを使用するだけでリダイレクトの問題が解決します。

于 2013-11-07T09:20:12.070 に答える
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 に答える
0

すでに送信されたヘッダー情報は、WordPress の一般的なエラーです。たとえば、Web サイトをリダイレクトしたい場合は、従うべきオプションが必要です。

  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
}

?>

ここで参照を確認してください

于 2013-11-07T04:10:58.757 に答える