Redirección de URLs antiguas de foros a nuevas URLs de Discourse usando enlaces permanentes
Si ha migrado de otro software de foro a Discourse utilizando uno de nuestros scripts de importación, probablemente querrá que todos sus resultados de búsqueda de Google bien merecidos sigan apuntando al mismo contenido. Discourse tiene una forma incorporada de manejar esto para usted como alternativa a escribir reglas de nginx, utilizando la tabla de búsqueda de enlaces permanentes (permalinks lookup table).
La tabla de enlaces permanentes le permite establecer dos cosas: una URL que coincidir, y a qué debe apuntar esa URL. Hay algunas opciones para definir dónde debe redirigirse la URL. Establezca una de estas:
topic_id: para mostrar un tema
post_id: para mostrar una publicación específica dentro de un tema
category_id: para mostrar una categoría
tag_id: para mostrar una etiqueta
user_id: para mostrar un perfil de usuario
external_url: para redirigir a una URL que podría no pertenecer a su instancia de Discourse
Por ejemplo, si las URLs de los temas de su foro original eran como http://example.com/discussion/12345, y la URL de ese tema después de la importación es http://example.com/t/we-moved/987, entonces puede configurar el mapeo de esta manera:
cd /var/discourse
./launcher enter app
rails c
Permalink.create(url: '/discussion/12345', topic_id: 987)
Discourse realizará entonces una redirección con código de estado de respuesta http 301 (movido permanentemente) a la URL correcta para el id de tema 12345. El 301 debería hacer que los motores de búsqueda actualicen sus registros y comiencen a usar las nuevas URLs.
Si desea que algunas URLs se redirijan fuera de Discourse, puede hacerlo estableciendo external_url: