Preciso de Ajuda com Redirecionamento após mudar o domínio do meu Fórum Discourse

Após mover meu fórum Discourse para uma nova instância e URL, preciso de ajuda para configurar o redirecionamento de domínio.

Quero que os links do domínio antigo redirecionem para o novo domínio. Por exemplo, um link como https://olddomain.com/t/topic/89520 deve redirecionar para https://newdomain.com/t/topic/89520.

Ouvi falar sobre o uso de um redirecionamento 301, mas estou com dificuldades para localizar o diretório de configuração do Nginx no meu servidor. Qualquer solução alternativa ou orientação seria muito apreciada.

1 curtida

Olá @Anirudh_Dutta_Gupta :wave: bem-vindo ao Meta :slight_smile:

Você já viu este tópico:

Obrigado @Lilly. Gostaria de saber se os permalinks também podem lidar com uma alteração completa de domínio. Apenas para esclarecer, estamos mudando de abc.domain1.com para xyz.domain2.com. Tanto o subdomínio quanto o domínio estão mudando. Tenho lido esta discussão e queria confirmar:

Você está tentando redirecionar um tópico existente do Discourse para um URL externo? É para isso que os permalinks não foram projetados. Tenho certeza de que você não pode redirecionar nada em /t.
Se você quiser que as pessoas que visitam https://hoidap.cheng.vn/t/cach-cua-do-nu-bao-binh-don-gian/70 2 sejam redirecionadas para https://cunghoangdao.info, então acho que sua melhor opção é editar a postagem e dizer às pessoas para clicarem no link para ir para o outro site.

1 curtida

Então você configura

3 curtidas

Obrigado @RGJ. Como faço para prosseguir com o redirecionamento genérico? Tanto o fórum atual quanto o anterior são no Discourse.

1 curtida

Assumindo que você vai remover o fórum atual, é apenas um redirecionamento normal do Apache ou nginx.

Para nginx

server {
    server_name original.example.com;
    location / {
        rewrite ^/(.*)$ https://new.example.com/$1 permanent;
    }
}

ou Apache

RewriteEngine On
RewriteRule ^(.*)$ https://new.example.com/$1 [R=301,L]

Eu perdi a parte em que você está apenas movendo o Discourse e não migrando. Como você está apenas mudando de domínio, não precisa dos redirecionamentos de permalink.

2 curtidas

Era o que eu estava pensando originalmente, mas não consigo encontrar a pasta nginx em lugar nenhum no diretório /etc. Estou procurando no lugar errado?

Isso ocorre porque atualmente há uma instalação do Discourse lá, que tem o nginx no contêiner.

Seria mais fácil apontar o nome de host antigo para a nova instância e lidar com o redirecionamento lá, veja URL rewrite for domain change in permalinks - #7 by modius

Alternativamente, remova a instalação do Discourse e configure o nginx na instância antiga.

1 curtida

Obrigado @RGJ pela orientação. Acabei fazendo um nível de domínio diretamente do nosso provedor de nomes de domínio, e isso funcionou. Os links antigos estão redirecionando para os novos links corretamente.

4 curtidas

Aqui está o método que uso para um redirecionamento completo após uma alteração de domínio, misturei algumas soluções oferecidas neste fórum.

no app.yml, no final, adiciono os blocos after_web_config e after_ssl:

hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git

  after_web_config:
    - replace:
        filename: /etc/nginx/nginx.conf
        from: /sendfile.+on;/
        to: |
          server_names_hash_bucket_size 64;
          sendfile on;
    - file:
        path: /etc/nginx/conf.d/discourse_redirect_1.conf
        contents: |
          server {
            listen 80;
            listen 443 ssl;
            server_name old-domain.com;
            return 301 $scheme://new-domain.com$request_uri;
          }
  after_ssl:
    - replace:
        filename: "/etc/runit/1.d/letsencrypt"
        from: /--keylength/
        to: " -d old-domain.com --keylength"

## Quaisquer comandos personalizados para executar após a compilação
run:
  - exec: echo "Início dos comandos personalizados"
  ## Se você quiser definir o endereço de e-mail 'De' para o seu primeiro registro, descomente e altere:
  ## Após receber o primeiro e-mail de registro, comente a linha novamente. Ela só precisa ser executada uma vez.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec: echo "Fim dos comandos personalizados"

Ele redirecionará os links antigos para os novos fóruns, sem problemas de SSL.

4 curtidas

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.