Перенаправить постоянную ссылку на комментарий к соответствующему пути узла
Страницы: 1
Перенаправить постоянную ссылку на комментарий к соответствующему пути узла, что это за звери такие hook_menu_alter и hook_preprocess_page
Столкнулся с проблемой: постоянная ссылка на комментарий вида site.ru/comment/111 выполняет 302 редирект на страницу вида site.ru/node/123#comment-111
Drupal 7
Из-за этого 302 редиректа просто огромные проблемы с Яндексом - убивает индексацию, о чем Платон прямо написал.
Нашел 2 варианта решения проблемы: [url]https://drupal.stackexchange.com/questions/134558/redirect-comment-permalink-to-their-corresponding-node-paths[/url]
Но, увы, моих знаний не хватает, чтобы применить это на практике.
Я просто не знаю, что это за звери такие hook_menu_alter и hook_preprocess_page.
Вопрос: куда вставить приведенный в статье по ссылке код? Куда конкретно это вписать?
Пожалуйста, помогите - ну очень нужны конкретные указания для ни разу не программиста.
Изменено: duvall duvall - 18 Марта 2019 19:11
тема старая, но вдруг кому пригодится, сам недавно на этом же споткнулся

суть проблемы тут не в редиректе как таковом, а в том, что drupal по умолчанию строит comment/ID и уже потом через menu router разворачивает это в node/NID#comment-ID, из-за чего и получается 302. если коротко - правится это не htaccess и не “магией”, а именно через хуки

hook_menu_alter - нужен чтобы переопределить существующий маршрут (то есть ты по сути меняешь, как drupal обрабатывает comment/%), можно подменить page callback или аргументы
hook_preprocess_page - это уже уровень шаблона, там можно менять вывод/ссылки перед рендером страницы (например, сразу формировать нормальный permalink без промежуточного редиректа)

рабочий вариант, который у меня завёлся:
в своём модуле через hook_menu_alter ловим comment/% и либо сразу редиректим на node/%#comment, либо возвращаем уже готовый путь без лишнего шага. если не хочется лезть в роутинг - можно пойти через preprocess и переписать ссылки на комментарии на этапе генерации (но это уже костыль, хоть и рабочий). и важный момент, на который многие натыкаются - после любых правок menu_alter обязательно чистить кеш, иначе будет казаться что “не работает”, потому что роутер кешируется в базе

нормальное решение - это именно переопределение маршрута, а не борьба с редиректом на уровне сервера

если кто-то делал без hook_menu_alter (например через кастомный path alias или модуль) - отпишитесь, интересно сравнить подходы
Страницы: 1
Читают тему (гостей: 1, пользователей: 0, из них скрытых: 0)
Новые темыОбъявленияСвободное общение
15:24 Штрафы РСЯ за скорость - выкинет ли Яндекс сайт на дешевом хостинге? 
15:12 В Яндексе позиции держатся, а трафик проседает - стало заметно сильнее 
14:58 Яндекс Нейро и выдача в 2026 - остались ли лазейки для маленьких сайтов? 
14:50 PHP 8 ломает старые сайты. Кто уже обновился - что отвалилось? 
14:35 Легкая тема для Вордпресса в 2026 - чтобы и красиво, и быстро? 
23:10 Перенаправить постоянную ссылку на комментарий к соответствующему пути узла 
23:05 Гугл запустил Первый АПдейт года и серп уже трясёт - Google March 2026 Core Update 
15:18 Продам сайт Домен РУ RU РФ c доменом www.доменру.рф 
14:13 Все услуги в Телеграм 
12:43 garantcoin.io - быстрый и надёжный сервис обмена криптовалюты GarantCoin 
09:39 Swapwatch.org — Мониторинг криптовалютных обменников 
04:09 От $0.015 за IP | $0.68 за ГБ | 9PROXY.COM | 20+ млн резидентных прокси | 99,95% аптайм | Без чёрных списков 
19:11 Продам аккаунты Gmail USA IP | Gmail MIX IP | Outlook Old 
17:56 Proxy SOCKS5/HTTP(S) : Резидентские-$1.5/GB | Мобильные-$2/GB | Datacenter-$1/GB | PREMIUM-$4 /GB 
14:45 молодильные яблоки и живая вода 
14:43 Ням-ням! - 8 деликатесов, которые когда-то ели только бедные люди 
09:55 90% людей живут не своей жизнью - вы тоже? 
09:54 Стряхнуть обыденность - об Агасфере 
23:38 8 марта: желаю аптайма 99.9% и e-e-a-t без локов 
17:43 Добро пожаловать в цифровой мир... 
17:18 Всех с праздником!