mateuspinheiro
  • 0
Новичок

Перенаправление простой большой проблемы

  • 0

я немного волнуюсь здесь.

Я пытаюсь перенаправить ВСЕХ, кто обращается к моему сайту, на определенную веб-страницу, и ничего не работает! В настоящее время я пробую этот код:

function redirect_this() {
    wp_redirect( 'http://www.myawesomesite.com/here.html', 301 );
    exit;
}
add_action('template_redirect', 'redirect_this');

И страница всегда показывает

Warning: Cannot modify header information - headers already sent by ...

Это сводит меня с ума.

Кстати, я создал плагин для хранения этого кода. Итак, этот код находится в одном файле плагина.

Share
  1. Не могли бы вы показать полное предупреждение? Часть после «заголовки уже отправлены…» может быть интересной.

    • 0
  2. Лучше используйте редирект.htaccess, чтобы не загружать даже WP:

    Options +FollowSymLinks
    RewriteEngine on
    RewriteRule (.*) http://www.newdomain.com [R=301,L]
    

    Если вы хотите сохранить путь после домена (например, http://www.olddomain.com/mypage -> http://www.newdomain.com/mypage), замените последнюю строку на:

    RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]
    
    • 0
  3. template_redirect происходит после отправки заголовков, вместо этого попробуйте подключить redirect_this к wp_loaded:

    add_action('wp_loaded', 'redirect_this');
    

    Вам нужно быть немного более преднамеренным в своей функции redirect_this, чтобы конкретно настроить таргетинг на страницу, которую вы хотите перенаправить, иначе все будет перенаправлено на эту страницу, сделайте что-то вроде этого:

    function redirect_this() {
        if ( is_page('slug-of-page-you-wish-to-redirect') ) {
            wp_redirect( 'http://www.myawesomesite.com/here.html', 301 );
            exit;
        }
    }
    
    • 0

Оставить ответ

You must login to add an answer.