Redirigir URL con Nginx en Digital Ocean

Tengo una configuración de Discourse lista en Digital Ocean.
Quiero redirigir de Flarum a Discourse pero no pude encontrar la carpeta de nginx.

Busqué en las carpetas /etc/ - /usr/ pero no la encontré. ¿No la encuentro porque se usa Docker?

¿Puedo redirigir con expresiones regulares a través de la interfaz de administración?

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

Quiero redirigir como arriba, pero no pude encontrar la carpeta de nginx. Estaría agradecido si me ayudas.
Además, si puedes compartir los códigos de expresiones regulares, te lo agradecería :slight_smile:

¿Hiciste una instalación estándar o flarum se ejecuta en el mismo host que Discourse?

¿Utilizaste el script de migración de flarum para importar tus datos? No parece que el script de flarum maneje las redirecciones de permalink. No puedo imaginar cómo la redirección que sugieres podría funcionar a menos que hayas logrado de alguna manera que los IDs de tema en Discourse coincidan con los de flarum.

Si de alguna manera lo hiciste, hay una configuración del sitio de normalización de permalink que hará lo que sugieres. Sería algo como

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

Pero la sección asdasd se puede reemplazar con un -, ya que la barra de direcciones se ignora para el enrutamiento.

nginx está dentro del contenedor docker. Puedes verlo si

cd /var/discourse
./launcher enter app

los cambios que hagas allí se destruirán cuando construyas un nuevo contenedor. Es posible hacer cambios en tu app.yml que modificarán la configuración de nginx en el contenedor cuando se construya uno nuevo. Puedes ver las plantillas en /var/discourse/templates para algunos ejemplos.

2 Me gusta

Entré a docker con el comando ./launcher enter app.
¡Está en nginx :slight_smile: Perdón, soy un principiante.

¿Qué archivo debo configurar en nginx? ¿Tienes algún conocimiento sobre este tema?

El nombre de dominio, etc., ¿aparece normalmente en este archivo?

La solución óptima aquí sería actualizar el script de migración para que las redirecciones de permalink se creen automáticamente.

No configures nginx directamente, esos cambios se destruirán cada vez que se reconstruya el contenedor para una actualización.

En su lugar, como dice @pfaffman, edita app.yml para modificar la configuración de nginx.

2 Me gusta

Estoy haciendo cambios en app.yml pero ¿cómo debería hacer el redireccionamiento? :frowning:

Realmente agradecería si pudieras ayudar. Hay más de 150.000 preguntas, no quiero intentar revisarlas todas :frowning:

Nunca antes me había redirigido de esta manera y, según mi investigación en Internet, no encontré mucho.

Cuando escribo el redireccionamiento con rewrite, lo que quiero es:

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

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

Ni siquiera necesito 123123, ¿cómo puedo hacerlo?

Tu destino necesita el ID del tema, el stub es opcional

1 me gusta

¿No es suficiente tener una sección de slug?

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

Por ejemplo, cuando haces clic en el enlace de arriba, se abre esta página.

Por lo tanto, no es necesario escribir 235297.

https://meta.discourse.org/t/cake/235297/ el stub no afecta la redirección; puedes tener cualquier cosa antes del ID.

https://meta.discourse.org/t/235297/ incluso puedes omitir el stub por completo.

https://meta.discourse.org/t/redirect-url-with-nginx-in-digital-ocean/ esto funcionará, pero es más frágil.

1 me gusta

Dado que los valores de id en Flarum y los valores de id aquí son diferentes, los valores de slug son suficientes para mí.

Es una pena tener que hacer 150.000 preguntas una por una. Estoy muy cansado :slight_smile:

Por eso, arreglar el script de importación es la solución más sencilla.

1 me gusta

No había ninguna opción de redirección de permalink en el script de importación, pero :frowning: También soy nuevo en el lenguaje Ruby y en postgresql. Me encantaría, pero no puedo.

Es casi seguro que será más rápido investigar y comparar con los otros scripts de importación e intentar implementarlos que crear 150.000 redirecciones manualmente.

2 Me gusta

Entonces necesitas modificar o pagarle a alguien para que modifique el script de importación para crear los permalinks. Lo que intentas hacer es imposible. Los IDs de los temas son todos diferentes. Si ya tienes usuarios usando la comunidad ahora estás de suerte o necesitarás desechar sus publicaciones.

Oh. Lo siento. Los import_ids deberían estar en la base de datos. Puedes escribir un script para crear los permalinks. Necesitarás mirar algunos de los otros scripts de importación para encontrar uno que cree las redirecciones después de que los temas sean importados en lugar de como parte de la función de importar tema.

3 Me gusta

¡MVP aquí mismo! :man_superhero:

2 Me gusta

Aquí tienes un ejemplo:

A veces es difícil obtener el slug correcto por diversas razones. Normalmente puedes hacer algo ingenioso con permalink_normalizations para ignorar el slug y prestar atención solo al ID en el Permalink.

4 Me gusta