Come posso usare i reindirizzamenti dinamici?

Sto migrando da Vanilla a Discourse e abbiamo deciso di ricominciare da capo invece di importare 8 anni di discussioni. Il sito attuale è forums.29th.org, quindi penso che, una volta che Discourse sarà completamente operativo, renderò discourse forums.29th.org e sposterò Vanilla su un altro dominio, come vanilla.29th.org (in realtà sto faticando a pensare a una buona convenzione per gli URL, dato che abbiamo diversi forum vecchi a questo punto!)

Quindi vorrei reindirizzare le richieste che corrispondono al pattern degli URL di Vanilla all’altro dominio. Sarebbe molto semplice con una regola nginx, ma (a) volevo verificare se fosse possibile utilizzare una funzionalità integrata di Discourse, come i Permalink, e (b) se non fosse possibile, volevo chiedere come si deve modificare correttamente la configurazione nginx (sarebbe ottimo se potessi anche metterla sotto controllo versione).

Per contesto, gli URL delle discussioni di Vanilla appaiono così:

/discussion/42206/example-topic#latest

Grazie!

Userei una regola nginx per reindirizzare /discussion al nuovo/vecchio dominio. (E importerei i vecchi dati, ma è così che guadagno da vivere)

@pfaffman Grazie, ma come posso scoprire dove modificare la regola di nginx? Devo eseguire launcher enter app e modificare il file in /etc/nginx/nginx.conf o qualcosa di simile? Dato che presumo siano container effimeri, mi aspetterei di dover modificare qualcosa di controllato tramite versione: è possibile?

Puoi aggiungere elementi al tuo app.yml per modificare la configurazione di nginx (o eseguirne una esterna). Non sono sicuro di dove sia meglio indirizzarti. Ecco un esempio di come apportare alcune modifiche alla configurazione di nginx per un altro scopo:

  after_ssl:
   # non reindirizzare tutti gli host al nome di dominio principale
    - replace:
        filename: "/etc/nginx/conf.d/discourse.conf"
        from: /if \(\$http_host[^\}]*\}/m
        to: ""
    - replace:
        filename: "/etc/nginx/conf.d/discourse.conf"
        from: /return 301.*$/
        to: "return 301 https://$host$request_uri;"

Perfetto, è proprio quello che volevo vedere. Grazie! C’è una documentazione su questo tipo di cose che avrei potuto consultare?

1 Mi Piace

Per chiunque altro arrivi qui, l’ho implementato accedendo via SSH al mio server, navigando in /var/discourse, aprendo containers/app.yml con vim e scorrendo fino alla sezione hooks. Ho quindi aggiunto questo frammento:

hooks: # questa riga dovrebbe essere già presente
  after_ssl:
    - replace:
        filename: "/etc/nginx/conf.d/discourse.conf"
        from: "location @discourse {"
        to: |
          location /discussion/ {
            return 301 https://vanilla.29th.org$request_uri;
          }

          location @discourse {
  after_code: # questa riga dovrebbe essere già presente
1 Mi Piace

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