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.
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.
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.
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?
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.
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.