Reindirizza URL con Nginx in Digital Ocean

Ho una configurazione Discourse già pronta su Digital Ocean.
Voglio reindirizzare da Flarum a Discourse ma non sono riuscito a trovare la cartella nginx.

Ho cercato nelle cartelle /etc/ - /usr/ ma non sono riuscito a trovarla. Non riesco a trovarla perché viene utilizzato Docker?

Posso reindirizzare con regex tramite l’interfaccia di amministrazione?

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

Voglio reindirizzare come sopra, ma non sono riuscito a trovare la cartella nginx. Sarei lieto se potessi aiutarmi.
Inoltre, se puoi condividere i codici regex, ti sarei grato :slight_smile:

Hai eseguito un’installazione standard o flarum è in esecuzione sullo stesso host di Discourse?

Hai utilizzato lo script di migrazione di flarum per importare i tuoi dati? Non sembra che lo script di flarum gestisca i reindirizzamenti dei permalink. Non riesco a immaginare come il reindirizzamento che suggerisci possa funzionare a meno che tu non abbia in qualche modo fatto in modo che gli ID degli argomenti in Discourse corrispondano a quelli in flarum.

Se in qualche modo ci sei riuscito, c’è un’impostazione del sito permalink normalization che farà ciò che suggerisci. Sarebbe qualcosa del tipo

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

Ma la sezione asdasd può essere sostituita con un -, poiché lo slug viene ignorato per il routing.

nginx è all’interno del container docker. Puoi vederlo se

cd /var/discourse
./launcher enter app

le modifiche che apporti lì verranno distrutte quando costruirai un nuovo container. È possibile apportare modifiche al tuo app.yml che modificheranno la configurazione di nginx nel container quando ne verrà costruito uno nuovo. Puoi dare un’occhiata ai template in /var/discourse/templates per alcuni esempi.

2 Mi Piace

Sono entrato in docker con il comando ./launcher enter app.
È in nginx :slight_smile: Scusa, sono un principiante.

Quale file dovrei configurare in nginx? Hai qualche conoscenza su questo argomento?
Il nome di dominio ecc. compare normalmente in questo file?

La soluzione ottimale qui sarebbe aggiornare lo script di migrazione in modo che i reindirizzamenti dei permalink vengano creati automaticamente.

Non configurare nginx direttamente, tali modifiche verranno distrutte ogni volta che il container viene ricreato per un aggiornamento.

Invece, come dice @pfaffman, modifica app.yml per modificare la configurazione di nginx.

2 Mi Piace

Sto apportando modifiche ad app.yml ma come dovrei fare il reindirizzamento? :frowning:

Apprezzerei molto se potessi aiutarmi. Ci sono oltre 150.000 domande, non voglio provare a esaminarle tutte :frowning:

Non sono mai stato reindirizzato in questo modo prima e, secondo le mie ricerche su Internet, non ho trovato molto.

Quando scrivo il reindirizzamento con rewrite, quello che voglio è:

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

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

Non ho nemmeno bisogno di 123123, come posso farlo?

La tua destinazione necessita dell’ID dell’argomento, il sommario è facoltativo

1 Mi Piace

Non basta avere una sezione slug?

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

Ad esempio, quando fai clic sul link sopra, si apre questa pagina.

Quindi non è necessario scrivere 235297.

https://meta.discourse.org/t/cake/235297/ il pezzo mancante non influisce sul reindirizzamento: puoi avere qualsiasi cosa prima dell’ID

https://meta.discourse.org/t/235297/ puoi anche omettere completamente il pezzo mancante

https://meta.discourse.org/t/redirect-url-with-nginx-in-digital-ocean/ questo funzionerà ma è più fragile

1 Mi Piace

Dato che i valori degli ID in Flarum e i valori degli ID qui sono diversi, i valori degli slug sono sufficienti per me.

È un peccato dover fare 150.000 domande una per una. Sono molto stanco :slight_smile:

Ecco perché correggere lo script di importazione è la soluzione più semplice

1 Mi Piace

Non c’era alcuna opzione di reindirizzamento del permalink nello script di importazione ma :frowning: Sono anche nuovo al linguaggio Ruby e a postgresql. Mi piacerebbe molto, ma non posso.

Sarà quasi certamente più veloce indagare e confrontare con gli altri script di importazione e tentare di implementare piuttosto che creare 150.000 reindirizzamenti manualmente.

2 Mi Piace

Allora dovrai modificare o pagare qualcuno per modificare lo script di importazione per creare i permalink. Quello che stai cercando di fare è impossibile. Gli ID degli argomenti sono tutti diversi. Se hai già utenti che utilizzano la community ora sei sfortunato o dovrai buttare via i loro post.

Oh. Scusa. Gli import_ids dovrebbero essere nel database. Puoi scrivere uno script per creare i permalink. Dovrai esaminare alcuni degli altri script di importazione per trovarne uno che crei i reindirizzamenti dopo che gli argomenti sono stati importati piuttosto che come parte della funzione di importazione dell’argomento.

3 Mi Piace

MVP qui! :man_superhero:

2 Mi Piace

ecco un esempio:

A volte è difficile ottenere lo slug corretto per vari motivi. Di solito puoi fare qualcosa di intelligente con permalink_normalizations per ignorare lo slug e prestare attenzione solo all’ID nel Permalink.

4 Mi Piace