Redirecionar URL com Nginx no Digital Ocean

Tenho uma configuração pronta do Discourse no Digital Ocean.
Quero redirecionar do Flarum para o Discourse, mas não consegui encontrar a pasta do nginx.

Procurei nas pastas /etc/ - /usr/ mas não a encontrei. Não consigo encontrá-la porque o Docker está sendo usado?

Posso redirecionar com regex através da interface de administração?

Flarum: https://testdiscourse.com/d/123123-asdasd
Discourse: https://testdiscourse.com/t/asdasd/123123

Quero redirecionar como acima, mas não consegui encontrar a pasta do nginx. Ficaria grato se pudesse ajudar.
Além disso, se puder compartilhar os códigos regex, agradeceria :slight_smile:

Você fez uma instalação padrão ou o flarum está rodando no mesmo host que o Discourse?

Você usou o script de migração do flarum para importar seus dados? Não parece que o script do flarum lida com redirecionamentos de permalink. Não consigo imaginar como o redirecionamento que você sugere poderia funcionar, a menos que você tenha de alguma forma conseguido que os IDs dos tópicos no Discourse correspondam aos do flarum.

Se você fez isso de alguma forma, há uma configuração do site permalink normalization que fará o que você sugere. Seria algo como

     /d\\/(\\d+)-(.*)/t\\/\\2\\/\\1/

Mas a seção asdasd pode ser substituída por um -, pois o slug é ignorado para roteamento.

O nginx está dentro do contêiner docker. Você pode vê-lo se

cd /var/discourse
./launcher enter app

as alterações que você fizer lá serão destruídas quando você construir um novo contêiner. É possível fazer alterações em seu app.yml que modificarão a configuração do nginx no contêiner quando um novo for construído. Você pode olhar os templates em /var/discourse/templates para alguns exemplos.

2 curtidas

Entrei no docker com o comando ./launcher enter app.
Está no nginx :slight_smile: Desculpe, sou iniciante.

Qual arquivo devo configurar no nginx? Você tem algum conhecimento sobre este tópico?

Nome de domínio, etc. ele normalmente aparece neste arquivo?

A solução ideal aqui seria atualizar o script de migração para que os redirecionamentos de permalink sejam criados automaticamente para você.

Não configure o nginx diretamente, pois essas alterações serão destruídas toda vez que o contêiner for reconstruído para uma atualização.

Em vez disso, como o @pfaffman diz, edite o app.yml para modificar a configuração do nginx.

2 curtidas

Estou fazendo alterações em app.yml, mas como exatamente devo fazer o redirecionamento? :frowning:

Eu realmente apreciaria se você pudesse me ajudar. Existem mais de 150.000 perguntas, não quero tentar passá-las todas :frowning:

Eu nunca fui redirecionado dessa forma antes e, de acordo com minha pesquisa na internet, não encontrei muita coisa.

Quando escrevo o redirecionamento com rewrite, o que eu quero é:

https://testdiscourse.com/d/123123-asda-asdasd-adas

https://testdiscourse.com/t/asda-asdasd-adas

Eu nem preciso do 123123, como posso fazer isso?

Seu destino precisa do ID do tópico, o stub é opcional

1 curtida

Não é suficiente ter uma seção de slug?

https://meta.discourse.org/t/redirect-url-with-nginx-in-digital-ocean

Por exemplo, quando você clica no link acima, esta página abre.

Portanto, não é necessário escrever 235297.

https://meta.discourse.org/t/cake/235297/ o stub não afeta o redirecionamento - você pode ter qualquer coisa antes do ID

https://meta.discourse.org/t/235297/ você pode até mesmo remover o stub completamente

https://meta.discourse.org/t/redirect-url-with-nginx-in-digital-ocean/ isso funcionará, mas é mais frágil

1 curtida

Como os valores de id no Flarum e os valores de id aqui são diferentes, os valores de slug são suficientes para mim.

É uma pena ter que fazer 150.000 perguntas uma por uma. Estou muito cansado :slight_smile:

É por isso que corrigir o script de importação é a solução mais fácil

1 curtida

Não havia nenhuma opção de redirecionamento de permalink no script de importação, mas :frowning: Eu também sou novo na linguagem Ruby e no postgresql. Eu adoraria, mas não posso.

É quase certamente mais rápido investigar e comparar com os outros scripts de importação e tentar implementar do que criar 150.000 redirecionamentos manualmente.

2 curtidas

Então você precisa modificar ou pagar alguém para modificar o script de importação para criar os permalinks. O que você está tentando fazer é impossível. Os IDs dos tópicos são todos diferentes. Se você já tem usuários usando a comunidade agora, você está sem sorte ou precisará descartar as postagens deles.

Ah. Desculpe. Os import_ids devem estar no banco de dados. Você pode escrever um script para criar os permalinks. Você precisará olhar alguns dos outros scripts de importação para um que crie os redirecionamentos após os tópicos serem importados em vez de como parte da função de importação de tópico.

3 curtidas

MVP aqui mesmo! :man_superhero:

2 curtidas

Aqui está um exemplo:

Às vezes, é difícil obter o slug correto por vários motivos. Geralmente, você pode fazer algo inteligente com permalink_normalizations para ignorar o slug e prestar atenção apenas ao ID no Permalink.

4 curtidas