Problema: Reindirizzare Domini e Sottodomini con Nginx
Reindirizzare un dominio e i suoi sottodomini può essere complicato, specialmente quando si usa Nginx come server web. Questo processo implica la configurazione per inviare tutto il traffico dal dominio originale e i suoi sottodomini alla destinazione desiderata.
Soluzione: Configurare Nginx per il Reindirizzamento del Dominio
Impostare il Blocco Server di Nginx
Per reindirizzare un dominio e i suoi sottodomini usando Nginx, è necessario creare un blocco server nel file di configurazione di Nginx. Questo blocco definirà le regole per gestire le richieste al tuo dominio.
Apri il file di configurazione di Nginx e aggiungi un nuovo blocco server:
server {
# La configurazione andrà qui
}
Definisci la direttiva server_name per specificare quale dominio e sottodomini questo blocco dovrebbe gestire. Nginx permette di abbinare sia il dominio principale che tutti i sottodomini usando un prefisso con il punto:
server {
server_name .miodominio.esempio;
# Seguiranno altre configurazioni
}
Questa impostazione di server_name corrisponderà a "miodominio.esempio" e a qualsiasi sottodominio di "miodominio.esempio".
Implementare la Regola di Reindirizzamento
Ora puoi aggiungere la regola di reindirizzamento. Nginx offre modi per implementare i reindirizzamenti, ma un metodo comune è l'uso della direttiva rewrite.
Aggiungi questa riga all'interno del tuo blocco server:
server {
server_name .miodominio.esempio;
rewrite ^ http://www.undominiodiverso.esempio$request_uri? permanent;
}
Questa regola rewrite fa quanto segue:
- Il simbolo ^ corrisponde all'inizio dell'URI.
- http://www.undominiodiverso.esempio è il dominio di destinazione per il reindirizzamento.
- $request_uri cattura l'URI originale della richiesta e lo aggiunge al nuovo dominio.
- Il ? alla fine rimuove eventuali stringhe di query dalla richiesta originale.
- Il flag permanent crea un reindirizzamento 301 (permanente).
Questa configurazione reindirizzerà tutte le richieste a "miodominio.esempio" o a qualsiasi suo sottodominio verso "www.undominiodiverso.esempio", mantenendo il percorso originale e rimuovendo eventuali stringhe di query.
Configurando Nginx in questo modo, crei un sistema di reindirizzamento che gestisce sia il tuo dominio principale che tutti i suoi sottodomini.
Suggerimento: Testare la Configurazione di Nginx
Dopo aver apportato modifiche alla configurazione di Nginx, è importante testarla prima di ricaricare il server. Puoi usare il seguente comando per verificare errori di sintassi:
nginx -t
Se il test ha successo, puoi quindi ricaricare Nginx per applicare le modifiche:
nginx -s reload
Metodi Alternativi per il Reindirizzamento Nginx
Usare la Direttiva Return
Per le versioni di Nginx 0.9.1 e successive, puoi usare la direttiva return per creare una regola di reindirizzamento più semplice. Questo metodo è chiaro ed efficiente.
Per implementarlo, modifica il tuo blocco server come segue:
server {
server_name .miodominio.esempio;
return 301 http://www.undominiodiverso.esempio$request_uri;
}
Questa configurazione fa lo stesso del metodo rewrite, ma con una sintassi più breve. Il codice di stato 301 indica un reindirizzamento permanente, e $request_uri mantiene il percorso originale nel nuovo URL.
Suggerimento: Usa HTTPS per Reindirizzamenti Sicuri
Quando imposti i reindirizzamenti, è una buona pratica usare HTTPS invece di HTTP per l'URL di destinazione. Questo migliora la sicurezza e aiuta a mantenere la crittografia SSL/TLS. Ecco un esempio:
server {
server_name .miodominio.esempio;
return 301 https://www.undominiodiverso.esempio$request_uri;
}
Gestione dei Sottodomini con Caratteri Jolly
Per gestire tutti i sottodomini, inclusi quelli futuri, puoi usare pattern con caratteri jolly nella tua direttiva server_name. Questo metodo permette di gestire nuovi sottodomini senza modificare la configurazione.
Ecco come impostarlo:
server {
server_name miodominio.esempio *.miodominio.esempio;
return 301 http://www.undominiodiverso.esempio$request_uri;
}
Questa configurazione cattura sia il dominio principale che qualsiasi sottodominio, reindirizzandoli tutti al dominio di destinazione. Il carattere jolly (*) corrisponde a qualsiasi prefisso di sottodominio, permettendo flessibilità nella tua configurazione di reindirizzamento.





