У меня есть сайт drupal8, который использует Entity Embed Module для размещения тизеров контента в текстовом потоке статей.
Теперь посетитель заходит на страницу статьи (узел / 6), которая содержит несколько тизеров встроенных узлов (узел / 123, узел / 124 ...).
Посетитель хочет напрямую поделиться узлом / 123 сформируйте эту страницу статьи (узел / 6).
Каждый из встроенных узлов должен иметь свой конкретный c внешний вид на каналах социальных сетей, что легко, поскольку каждый из них имеет свою собственную страницу отдельного узла (в данном случае node / 123) с установленными соответствующими метатегами opengraph.
Но я не хочу перенаправлять пользователей из социальных сетей обратно на страницу этого отдельного узла (node / 123), а вместо этого перенести их в статью (node / 6). ) где часть контента была вставлена / откуда она была предоставлена изначально.
Каков предпочтительный способ достижения этого?
Мои идеи на данный момент:
Управление метатегами статьи (node / 6 ) в зависимости от аргумента URL? (Я не знаю, как добиться этого на стороне сервера, поэтому социальный бот получает правильные метатеги).
Добавление аргумента к URL-адресу страницы с одним узлом (node / 123), который является общим, содержит URL-адрес статьи, из которой был встроен и предоставлен общий доступ к узлу,
и инициирует перенаправление с js, когда URL-адрес содержит этот аргумент.
Чтобы прояснить это: допустим, у меня есть статья с url / node / 6, которая содержит встроенный тизер url node / 123. Тогда моя кнопка общего доступа на встроенном узле будет содержать этот URL:
например: http://example.com/node/123?originalySharedFrom=http: //example.com/node/6
var redirect_to_url = url.searchParams.get("originalySharedFrom");
if (redirect_to_url){
window.location.replace(redirect_to_url);
}
будет будет ли второй подход поддерживаться большинством социальных сетей?
У меня такое ощущение, что solucion 2 - не самый надежный ...