Veja SiteSettings.permalink_redirects
Editar: ops. Normalizações de Permalink
Veja SiteSettings.permalink_redirects
Editar: ops. Normalizações de Permalink
Você quer dizer em /admin/site_settings/category/all_results procurar por permalink_redirects? Essa configuração não existe para mim.
Mas permalink_normalizations meio que funciona, usando /^forum\\/(view.*)/\\1:
view, como viewtopic.php e viewforum.php. Na verdade, esses parecem ser os únicos dois URLs migrados no nosso caso, então a regex poderia ser aprimorada, ou dividida em duas para correspondência de caminho completo.sed) pega todos os URLs que começam com /forum/view e remove a parte forum/.Agora, só precisamos redirecionar todos os /phpbb/ (nosso antigo caminho do fórum) para /forum/ no servidor web (ou Cloudflare no nosso caso) e o Discourse cuida do resto. Deveria ter encontrado isso há uns 3 anos, em vez de quebrar todos os backlinks
.
Mas me diga onde esse permalink_redirects deveria estar, talvez precise de um plugin, ou fizesse parte do plugin de importação do phpBB ou algo assim?
EDIT: Funciona bem:
root@micha:~# curl -IL https://dietpi.com/phpbb/viewtopic.php?p=46083
HTTP/2 301
location: /forum/viewtopic.php?p=46083
HTTP/2 301
location: https://dietpi.com/forum/t/is-there-a-simple-launch-page-for-dietpi/11237/1
x-discourse-route: permalinks/show
HTTP/2 200
x-discourse-route: topics/show
O primeiro redirecionamento /phpbb => /forum acontece no Cloudflare via regra de redirecionamento, para manter a carga trivial longe da nossa origem. O segundo redirecionamento para o tópico real é feito no Discourse via permalink, removendo o forum/ inicial via normalização de permalink, para corresponder aos permalinks adicionados pelo plugin de importação do phpBB, que não contêm o caminho do subdiretório antigo ou novo do fórum.
Desculpe. Era isso que eu queria dizer.
Não. Apenas crie uma normalização para esse caminho.
Isso não funciona, pois o Discourse vive em /forum e não vê nenhuma solicitação para /phpbb. Com o Discourse em um subcaminho, que não corresponde ao caminho do software de fórum anterior para importar, não há como evitar fazer um redirecionamento (ou reescrever antes do proxy) para o caminho do Discourse, para que sua normalização se torne eficaz.
Certo. Eu perdi isso. Você precisa redirecionar /phpbb para /forum e provavelmente ainda se preocupar com normalizações.
Certo, mas isso realmente não foi muito difícil: /^forum\\/(view.*)/\\1 funciona perfeitamente para nossos antigos permalinks do phpBB. Não tenho certeza se, dependendo das configurações, há outros permalinks gerados pelo plugin de importação além de viewforum.php e viewtopic.php, como possivelmente links de perfil de usuário ou algo assim?
Seria realmente bom ter uma maneira de rolar/navegar ou classificar permalinks, para saber melhor quais esquemas de URL estão contidos. Mas fora de tópico, e depois de percorrer os padrões de pesquisa, tenho certeza de que, no nosso caso, apenas os dois acima existem.
Parece que o script faz apenas permalinks de categoria, tópico e post.
Se você quisesse criar permalinks de usuário e os perfis de usuário no sistema antigo incluem o import_id do usuário, então você poderia criá-los com um pouco de ruby no console.
Bom saber. E os URLs de tópico e post usam o mesmo script PHP. Então, para descartar qualquer normalização não intencional, minha regex poderia ser dividida em duas:
/^forum\\/(viewforum.php\\?.*)/\\1 para categorias/^forum\\/(viewtopic.php\\?.*)/\\1 para tópicos e posts… ou /^forum\\/(view(forum|topic).php\\?.*)/\\1, não tenho certeza se há alguma diferença marginal em termos de desempenho.
URLs de perfil são, de qualquer forma, improváveis de ter backlinks. Nós o usamos para dar aos usuários que relataram bugs ou cujas sugestões foram incluídas em nosso projeto, créditos em nossas notas de lançamento. Mas esse é um caso raro, eu acho, e os links em nossas notas de lançamento foram atualizados imediatamente quando mudamos para o Discourse.