Как и @codinghorror, я также использую эту интеграцию Discourse с Ghost с использованием стандартной конфигурации, где в качестве discourseEmbedURL используется абсолютный URL.
Около недели назад я решил изменить маршрутизацию моего блога Ghost так, чтобы посты с URL-адресами вроде https://engineerworkshop.com/2020/02/20/how-to-set-up-wireguard-on-a-raspberry-pi/ перенаправлялись на https://engineerworkshop.com/blog/how-to-set-up-wireguard-on-a-raspberry-pi/, причем https://engineerworkshop.com/blog/how-to-set-up-wireguard-on-a-raspberry-pi/ стал новым постоянным URL (permalink).
Проблема
Вы, вероятно, можете предугадать проблему, которую это создаёт: параметр discourseEmbedURL установлен на старый URL, поэтому при вызове скрипта встраивания, который теперь имеет другой URL, в Discourse создаётся новая тема комментариев.
Попытка решения (которая не удалась)
До этого я предвидел эту проблему и подумал, что проявил хитрость, используя шаблон регулярного выражения с командой remap для исправления URL: rake posts:remap["[0-9]{4}\/[0-9]{2}\/[0-9]{2}","blog",regex]
Хотя это и «отчасти» сработало, к сожалению, везде, где URL использовался в оригинальном комментарии Discourse, при загрузке постов блога в Discourse создавались новые темы комментариев.
В итоге я просто перезагрузил каждый пост на своём сайте и перенёс комментарии из старых тем в новые, удалив оригиналы (знаю, знаю). Очевидно, что удаление страниц плохо сказывается на SEO, не говоря уже об опыте конечного пользователя.
Мой вопрос
Я предполагаю, что причина неудачи моей попытки исправления через регулярное выражение заключается в том, что тема Discourse каким-то образом привязана к URL на стороне сервера. (Я с готовностью признаю, что не знаком со структурой данных Discourse). Для будущих знаний и для всех, кто может попытаться сделать то же самое в будущем, существует ли способ переназначить тему Discourse на новый URL поста блога?
Заранее спасибо!