Come @codinghorror, anch’io utilizzo questa integrazione Discourse con Ghost usando la configurazione standard, che impiega l’URL assoluto come discourseEmbedURL.
Circa una settimana fa, ho deciso di modificare l’indicizzazione del mio blog Ghost in modo che i post con URL come https://engineerworkshop.com/2020/02/20/how-to-set-up-wireguard-on-a-raspberry-pi/ vengano reindirizzati a https://engineerworkshop.com/blog/how-to-set-up-wireguard-on-a-raspberry-pi/, con quest’ultimo che diventa il nuovo permalink.
Il Problema
Probabilmente potete intuire il problema che questo crea: il discourseEmbedURL è impostato sull’URL vecchio, quindi quando viene chiamato lo script di embedding, che ora ha un URL diverso, viene creato un nuovo post di commenti su Discourse.
Tentativo di Soluzione (Fallito)
Prima di questo, avevo previsto il problema e pensavo di essere stato furbo usando un pattern regex con remap per correggere gli URL: rake posts:remap["[0-9]{4}\/[0-9]{2}\/[0-9]{2}","blog",regex]
Anche se ciò ha funzionato “in un certo senso”, ovunque l’URL fosse stato utilizzato nel post originale dei commenti su Discourse, purtroppo, quando caricavo i post del blog, venivano creati nuovi argomenti di commenti su Discourse.
Alla fine, ho semplicemente ricaricato ogni post sul mio sito e trasferito i commenti dai vecchi argomenti ai nuovi, eliminando quelli originali (lo so, lo so). Ovviamente, eliminare le pagine è negativo per la SEO, per non parlare dell’esperienza dell’utente finale.
La Mia Domanda
Immagino che il motivo per cui il mio tentativo di patch con regex non abbia funzionato sia che l’argomento Discourse è in qualche modo legato all’URL sul backend. (Ammetto prontamente di non conoscere la struttura dei dati di Discourse). Per conoscenza futura e per chiunque altro possa tentare di fare lo stesso in futuro, esiste un modo per rimappare un argomento Discourse a un nuovo URL di post del blog?
Grazie in anticipo!