Meus URLs antigos do fórum são no formato /posts/t{topic_id}-{url_slug}.
Usei o Permalink do Discourse para mapear os URLs antigos do fórum para os novos URLs do Discourse.
O problema é que o Rails Router está roteando as solicitações para os URLs antigos do fórum para uma das rotas associadas ao recurso “posts”. (Não sei qual rota.)
A Normalização de Permalink é executada após o roteamento, então essa não é a solução.
Acho que a solução é adicionar uma rota personalizada em config\routes.rb para pular o processamento da solicitação pelo PostsController se o URL estiver no formato /posts/t{topic_id}-{url_slug}, mas não tenho conhecimento suficiente em Rails Routing para fazer essa alteração. Ou, talvez esse não seja o caminho?
Como eles se parecem? Quais são os permalinks que você adicionou?
O fórum já está no ar ou você ainda pode executar o script de importação? (Na verdade, você pode criar um script Ruby que pode executar no Rails para adicionar Permalinks como aqueles que descrevo.)
Acho que talvez você queira fazer seus Permalinks algo como /oldforum/{topic_id} e, em seguida, adicionar alguma configuração ao nginx para capturar esses URLs /posts/t e remapeá-los para /oldforum/{topic_id}.
Então (de acordo com a IA) você faria um replace com pups (em breve você poderá adicioná-lo a um outlet, mas não sei quando isso acontecerá) para adicionar isso à sua configuração nginx discourse.conf:
# Coloque isso dentro do seu bloco server {}
location ~ ^/posts/t(?<topic_id>\d+)-.*$ {
# Redirecionamento permanente (301)
return 301 /oldforum/$topic_id;
# Alternativamente, para redirecionamento temporário (302), use:
# return 302 /oldforum/$topic_id;
}
Eu testaria fazendo essas alterações manualmente dentro do contêiner e, em seguida, trabalharia de trás para frente para adicionar as alterações ao seu app.yml.
Descobri que essa solução pode não ser viável porque a cadeia de redirecionamento afetará a pontuação de SEO do site. São necessários dois redirecionamentos 301 e três requisições para chegar ao post real.
E então, deixar o Permalink lidar com a requisição. Parece que deve funcionar, mas não tenho certeza.