Как перенаправить страницу с адресом /node1 на /node2.

Главные вкладки

Комментарии

Аватар пользователя Dirst Dirst 28 июня 2014 в 8:22

Ужас, целый модуль ставить для одной ерундушки.

<?php
if( (arg(0) == 'node') && (arg(1) == '1') )
drupal_goto('node/2');
?>

Этот код можно вставить практически куда угодно.
я бы в template.php вставил в preprocess_page, но можно и в шаблон если не понятно.

Аватар пользователя kv4 kv4 29 июня 2014 в 10:03

"Dimychka" wrote:
я бы в template.php вставил в preprocess_page, но можно и в шаблон если не понятно.

Это не правильно.

Хотя бы потому, что когда вызывается preprocess_page, уже сделаны все запросы к БД. А значит drupal_goto в этом месте, повторит весь цикл.

В общем, правильно - это поставить https://www.drupal.org/project/redirect как написали выше. А ты советуешь какую-то ерунду.

или, если это единичный случай перенаправления, то ТС на верном пути, нужно просто внимательно почитать про синтаксис... и всё будет хорошо.

Аватар пользователя Dirst Dirst 29 июня 2014 в 11:38

"kv4" wrote:
В общем, правильно - это поставить https://www.drupal.org/project/redirect как написали выше. А ты советуешь какую-то ерунду.

Ради единичного случая перенаправления ставить целый модуль, да к тому же еще не самый легковесный - это правильно?

ДА цикл повториться, но разве это так страшно для простого сайта?
Можно конечно добавить в hook_init в модуль если страницы конечно не кэшируются.