2013-11-07 1 views
-3

Я пытаюсь сделать перенаправление на страницу на основе ее реферера. макет какRedircting на страницу в PHP

<?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, но я не могу этого сделать, поскольку у меня есть хостинг-аккаунт в хосгаторе. Может ли кто-нибудь предложить мне, какие у меня варианты? могу ли я сделать это, изменив свой код? Если да, то какие изменения?

+0

Показать код. – Red

+0

Вам необходимо прикрепить этот код к раннему запуску Wordpress [action] (http://codex.wordpress.org/Plugin_API/Action_Reference), чтобы отправить заголовки перед началом вывода. Я бы пошел с [init] (http://codex.wordpress.org/Plugin_API/Action_Reference/init) – Phil

+0

@mario Это симптом, но проблема в том, что это дерьмовая архитектура Wordpress. Вероятно, лучше на http://wordpress.stackexchange.com/ – Phil

ответ

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

+0

Это сработало. Спасибо. – narayanpatra

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

+0

его хороший метод. но получить эту ошибку: вызвать неопределенную функцию add_action() – narayanpatra

+0

, где вы разместили этот код? в функциях вашей функции.php? – codepixlabs

+0

na, я создал новую папку. заблокировал его через robots.txt. и поместите весь этот код в отдельный файл php в этой новой папке. этот файл будет иметь мои партнерские ссылки, и я хочу скрыть его от Google. – narayanpatra

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. Или вы можете перенаправить с функцией window.location Java скрипта

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

1

Привет, собственно заголовок ("Loc ation: url другого сайта "); не будет поддерживать Wordpress. Вместо этого вы можете использовать

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

и для домашней страницы просто использовать <?php wp_redirect(home_url()); exit; ?> это решит вашу проблему перенаправления.

Смежные вопросы