Redirect old forum URLs to new Discourse URLs using permalinks

Redirezionamento di URL di forum vecchi a URL di Discourse nuovi usando permalink

Se sei passato da un altro software per forum a Discourse utilizzando uno dei nostri script di importazione, allora probabilmente vuoi che tutti i tuoi risultati di ricerca Google guadagnati duramente continuino a puntare allo stesso contenuto. Discourse ha un modo integrato per gestire questo per te come alternativa alla scrittura di regole nginx, utilizzando la tabella di ricerca dei permalink.

La tabella dei permalink ti consente di impostare due cose: un URL da corrispondere e cosa dovrebbe mostrare quell’URL. Ci sono alcune opzioni per definire dove l’URL dovrebbe reindirizzare. Imposta una di queste:

  • topic_id: per mostrare un argomento
  • post_id: per mostrare un post specifico all’interno di un argomento
  • category_id: per mostrare una categoria
  • external_url: per reindirizzare a un URL che potrebbe non appartenere alla tua istanza Discourse

Ad esempio, se gli URL degli argomenti del tuo forum originale fossero simili a http://example.com/discussion/12345, e l’URL di quell’argomento dopo l’importazione fosse http://example.com/t/we-moved/987, allora puoi impostare la mappatura in questo modo:

cd /var/discourse
./launcher enter app
rails c
Permalink.create(url: '/discussion/12345', topic_id: 987)

Discourse eseguirà quindi un reindirizzamento con codice di stato HTTP 301 (spostato permanentemente) all’URL corretto per l’ID argomento 12345. Il 301 dovrebbe indurre i motori di ricerca ad aggiornare i loro record e iniziare a utilizzare i nuovi URL.

Se vuoi che alcuni URL reindirizzino fuori da Discourse, puoi farlo impostando external_url:

Permalink.create(url: '/discussion/12345', external_url: 'http://archived.example.com/discussion/12345')

Informazioni aggiuntive

Per trovare l’ID di una sottocategoria, puoi cercarlo tramite lo slug in questo modo:

Category.find_by_slug('products').id

Per eliminare il permalink per quell’URL, fai questo:

Permalink.find_by_url("/blah").destroy

Può esserci un solo record di permalink per URL, quindi cerca semplicemente per URL.

Creazione di una mappa di argomenti da MyBB a Discourse

Domande sul reindirizzamento da Discourse a WordPress

https://meta.discourse.org/t/discourse-to-wordpress-redirect-questions/87031

Normalizzazione dei Permalink


Ultima revisione di @SaraDev in data 2022-06-03T20:00:00Z

37 Mi Piace