Javascript経由で別のウェブサイトにDiscourseコメントを埋め込む

@codinghorror と同様に、私も デフォルト設定 を使用して、この Discourse 統合を Ghost と連携させています。この設定では、絶対 URL が discourseEmbedURL として使用されます。

数週間前、Ghost ブログのルーティングを変更することにしました。https://engineerworkshop.com/2020/02/20/how-to-set-up-wireguard-on-a-raspberry-pi/ のような URL の投稿を https://engineerworkshop.com/blog/how-to-set-up-wireguard-on-a-raspberry-pi/ にリダイレクトするように変更し、後者を新しいパーマリンクとしました。

問題

お察しの通り、この変更により問題が発生します。discourseEmbedURL が古い URL に設定されているため、URL が変更された状態で埋め込みスクリプトが呼び出されると、Discourse に新しいコメント投稿が作成されてしまいます。

試した解決策(失敗)

以前、この問題が起きることを予想していたため、URL を修正するために remap と正規表現パターンを組み合わせて使おうと考えました:rake posts:remap["[0-9]{4}\/[0-9]{2}\/[0-9]{2}","blog",regex]

これで「ある程度」は機能しましたが、元の Discourse コメント投稿内で URL が使用されていた箇所では、ブログ投稿を読み込むたびに、残念ながら Discourse に新しいコメントトピックが作成されてしまいました。

最終的には、サイトのすべての投稿を再読み込みし、古いトピックのコメントを新しいトピックに移行してから、元のトピックを削除しました(はい、その通りです)。ページを削除するのは SEO にとって悪影響であるだけでなく、ユーザー体験も損なわれます。

ご質問

私の正規表現による修正が機能しなかった理由は、Discourse のトピックがバックエンドで URL をキーとして何らかの形で紐付けられているためだと推測しています(Discourse のデータ構造については無知であることをお断りしておきます)。 今後の知識として、また将来同じことを試みる他の人のために、Discourse のトピックを新しいブログ投稿の URL に再マッピングする方法はありますか?

あらかじめありがとうございます!

「いいね!」 5