Redireccionar URLs antiguas de foros a URLs nuevas de Discourse usando permalinks
Si te has mudado de otro software de foro a Discourse utilizando uno de nuestros scripts de importación, entonces probablemente querrás que todos tus resultados de búsqueda de Google ganados con tanto esfuerzo sigan apuntando al mismo contenido. Discourse tiene una forma integrada de manejar esto por ti como alternativa a escribir reglas de nginx, utilizando la tabla de búsqueda de permalinks.
La tabla de permalinks te permite configurar dos cosas: una URL a coincidir y qué debe mostrar esa URL. Hay algunas opciones para definir a dónde debe redirigir la URL. Configura 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
external_url: para redirigir a una URL que puede no pertenecer a tu instancia de Discourse
Por ejemplo, si las URLs de los temas de tu foro original se veían 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 puedes 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 quieres que algunas URLs redirijan fuera de Discourse, puedes hacerlo configurando external_url: