Привязка комментариев vk после изменения структуры адресов страниц

Комментарии вконтакте со старых страницБывают случаи, когда вебмастерам приходится менять движок сайта, а вместе с движком меняется и структура ссылок. Не все CMS позволяют сделать тонкий тюнинг, а использовать костыль не хочется. В таком случае  для того, чтобы не потерять позиции в поисковиках и предотвратить 404 ошибку при переходе по ссылкам старой структуры, вебмастера делают 301 редирект. Но как быть с комментариями vk (вконтакте), которые жёстко привязываются к url странице и не отображаются, если её адрес поменялся?

У меня возникла данная ситуация и я обратился в техническую поддержку vk, чтобы узнать о возможности редиректа комментариев. Я получил следующий развёрнутый ответ:

Вообще говоря, использование page_id — единственный верный способ перенести комментарии с одного домена на другой. page_id — это внутренний идентификатор страницы, который указывается последним параметром в VK.Widgets.Comments().

Без него мы можем предложить только своего рода костыль.

Надо добавить в код виджета на новой странице параметр pageUrl, в котором передать _старый_адрес страницы.

Например, если комментарии находились на странице site.ru/index.html, а нужно перенести их на site.ru/index1.html, порядок действий следующий:
1. Добавляем на страницу site.ru/index1.html код виджета.
3. Вставляем в этот код (в VK.Widgets.Comments) параметр pageUrl: «http://site.ru/index.html«.

В итоге у Вас на странице site.ru/index1.html виджет будет отображаться так, как будто находится на site.ru/index.html.

Есть подводный камень, и он может быть критичен для Вас — если пользователь опубликует комментарий из такого виджета на своей странице, ссылка рядом с записью будет вести не на site.ru/index2.html, а на site.ru/index1.html (т.е. на тот адрес, который передан в pageUrl).

Если что-то непонятно, пожалуйста, уточняйте.

С уважением,
Команда поддержки ВКонтакте

Однако побочный эффект, о котором предупреждает сотрудник технической поддержки vk. Нужно просто сделать Redirect 301 со старого url вида site.ru/index1.html на новый site.ru/index2.html.

Ниже представлен абстрактный файл шаблона http://site.ru/index2.html, с виджетом vk комментариев:

Из кода видно, что комментарии мы берём со старого адреса http://site.ru/index.html. Но техподдержка vk предупреждает о том, что при репосте коммента его адрес будет вести на старую страницу сайта. Чтобы пользователи, пришедшие по такой ссылке не ловили 404 ошибку, сделаем 301 редирект:

После всех изменений комментарии vk будут отображаться корректно. А что насчёт лайков? Но это уже другая история.




Комментарии