Necesito ayuda con la redirección después de cambiar el dominio de mi foro de Discourse

Después de mover mi foro de Discourse a una nueva instancia y URL, necesito ayuda para configurar la redirección de dominio.

Quiero que los enlaces del dominio antiguo redirijan al nuevo dominio. Por ejemplo, un enlace como https://olddomain.com/t/topic/89520 debería redirigir a https://newdomain.com/t/topic/89520.

He oído hablar de usar una redirección 301, pero me cuesta encontrar el directorio de configuración de Nginx en mi servidor. Cualquier solución alternativa o guía sería muy apreciada.

1 me gusta

Hola @Anirudh_Dutta_Gupta :wave: bienvenido a Meta :slight_smile:

¿Ya has visto este tema?:

Gracias @Lilly. Me gustaría saber si los permalinks también pueden manejar un cambio de dominio completo. Solo para aclarar, nos estamos moviendo de abc.domain1.com a xyz.domain2.com. Tanto el subdominio como el dominio están cambiando. He estado leyendo esta discusión y quería confirmar:

¿Estás intentando redirigir un tema de Discourse existente a una URL externa? Eso no es para lo que están diseñados los permalinks. Estoy bastante seguro de que no puedes redirigir nada bajo /t.
Si quieres que las personas que visitan https://hoidap.cheng.vn/t/cach-cua-do-nu-bao-binh-don-gian/70 2 sean redirigidas a https://cunghoangdao.info, entonces creo que tu mejor opción es editar la publicación y decirle a la gente que haga clic en el enlace para ir al otro sitio.

1 me gusta

Así que configuras

3 Me gusta

Gracias @RGJ. ¿Cómo procedo con la redirección genérica? Tanto el foro actual como el anterior están en Discourse.

1 me gusta

Suponiendo que vas a eliminar el foro actual, es una redirección normal de Apache o nginx.

Para nginx

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

o Apache

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

Me había saltado la parte en la que solo mueves Discourse y no migras. Dado que solo estás cambiando de dominio, no necesitas las redirecciones de permalink.

2 Me gusta

Eso es lo que estaba pensando originalmente, pero no encuentro la carpeta nginx en ningún lugar del directorio /etc. ¿Estoy buscando en el lugar equivocado?

Eso se debe a que actualmente hay una instalación de Discourse allí, que tiene nginx en el contenedor.

Sería más fácil apuntar el nombre de host antiguo a la nueva instancia y manejar la redirección allí, ver URL rewrite for domain change in permalinks - #7 by modius

Alternativamente, elimine la instalación de Discourse y configure nginx en la instancia antigua.

1 me gusta

Gracias @RGJ por la orientación. Acabo de hacer un dominio de nivel directo desde nuestro proveedor de nombres de dominio, y eso funcionó. Los enlaces antiguos se están redirigiendo a los enlaces nuevos correctamente.

4 Me gusta

Aquí está el método que utilizo para una redirección completa después de un cambio de dominio, mezclé algunas soluciones ofrecidas en este foro.

en el app.yml, al final añado los bloques after_web_config y 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"

## Cualquier comando personalizado para ejecutar después de la compilación
run:
  - exec: echo "Beginning of custom commands"
  ## Si desea establecer la dirección de correo electrónico 'De' para su primer registro, descomente y cambie:
  ## Después de recibir el primer correo electrónico de registro, vuelva a comentar la línea. Solo necesita ejecutarse una vez.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec: echo "End of custom commands"

Redirigirá los enlaces antiguos a los nuevos foros, sin problemas de SSL.

4 Me gusta

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