Come reindirizzare www a non-www con Nginx?

Pubblicato 27 agosto 2024

Configurazione di Nginx per reindirizzare www a non-www

I proprietari di siti web spesso utilizzano una singola versione del loro dominio per migliorare SEO ed esperienza utente. Reindirizzare la versione www di un dominio alla versione non-www (o viceversa) è pratica comune. Per gli utenti Nginx, impostare questo reindirizzamento richiede una configurazione specifica. Questo articolo spiega come reindirizzare www a non-www usando Nginx, aiutandoti a mantenere una struttura di dominio coerente per il tuo sito web.

Impostare Nginx per il Reindirizzamento da www a Non-www

Creazione di un Blocco Server per il Reindirizzamento

Per impostare un blocco server per il reindirizzamento da www a non-www:

  1. Crea un nuovo file di configurazione:

    sudo nano /etc/nginx/sites-available/esempio.com
  2. Aggiungi questo blocco server:

    server {
       listen 80;
       server_name www.esempio.com esempio.com;
    
       # Altre configurazioni del server vanno qui
    }
  3. Usa la direttiva server_name per specificare entrambe le versioni www e non-www del tuo dominio.

  4. Salva il file ed esci dall'editor di testo.

  5. Crea un link simbolico per abilitare il sito:

    sudo ln -s /etc/nginx/sites-available/esempio.com /etc/nginx/sites-enabled/
  6. Rimuovi la configurazione predefinita di Nginx:

    sudo rm /etc/nginx/sites-enabled/default

Questa configurazione costituisce la base per implementare il reindirizzamento da www a non-www in Nginx.

Implementazione del Reindirizzamento 301 in Nginx

Scrittura della Regola di Reindirizzamento

Per reindirizzare www a non-www usando Nginx, utilizza la direttiva return con un codice di stato 301. Questo indica un reindirizzamento permanente. Aggiungi questa regola al tuo blocco server:

server {
    listen 80;
    server_name www.esempio.com esempio.com;
    if ($host = www.esempio.com) {
        return 301 $scheme://esempio.com$request_uri;
    }
    # Altre configurazioni del blocco server
}

Questa regola controlla se l'host richiesto è la versione www del tuo dominio. In caso affermativo, reindirizza alla versione non-www, mantenendo lo schema originale (http o https) e qualsiasi parametro URL.

Verifica della Configurazione Nginx

Dopo aver scritto la regola di reindirizzamento, verifica la tua configurazione Nginx per eventuali errori:

  1. Esegui questo comando:

    sudo nginx -t
  2. Se non ci sono errori, vedrai un messaggio che indica che il test di configurazione è riuscito.

  3. In caso di errori, controlla il tuo file di configurazione e correggi eventuali problemi.

Una volta superato il test di configurazione, ricarica Nginx per applicare le modifiche:

sudo systemctl reload nginx

Questo comando ricarica Nginx senza interrompere le connessioni attive. Il tuo reindirizzamento da www a non-www dovrebbe ora funzionare. Verifica visitando il tuo dominio www in un browser web per confermare che reindirizza alla versione non-www.

Considerazioni Aggiuntive per il Reindirizzamento

Gestione delle Connessioni HTTPS

Per gestire le connessioni HTTPS, configura i certificati SSL e aggiorna il tuo blocco server Nginx:

  1. Ottieni un certificato SSL per il tuo dominio.

  2. Installa il certificato SSL sul tuo server.

  3. Aggiorna il tuo blocco server Nginx per supportare HTTPS:

server {
    listen 80;
    listen 443 ssl;
    server_name www.esempio.com esempio.com;

    ssl_certificate /percorso/del/tuo/certificato.crt;
    ssl_certificate_key /percorso/della/tua/chiave.key;

    if ($host = www.esempio.com) {
        return 301 https://esempio.com$request_uri;
    }

    if ($scheme != "https") {
        return 301 https://$host$request_uri;
    }

    # Altre configurazioni SSL e del server
}

Questa configurazione reindirizza il traffico HTTP e HTTPS da www a non-www e utilizza HTTPS per tutte le connessioni.

Configurazione DNS per Domini www e Non-www

Per configurare il DNS per domini www e non-www:

  1. Crea un record A per il tuo dominio non-www (esempio.com) che punti all'indirizzo IP del tuo server.

  2. Imposta un record CNAME per il sottodominio www (www.esempio.com) che punti al tuo dominio non-www.

Esempio di record DNS:

esempio.com.     A     123.45.67.89
www.esempio.com. CNAME esempio.com.

Dopo aver apportato modifiche al DNS, consenti il tempo necessario per la propagazione. Questo può richiedere fino a 48 ore, ma spesso avviene entro poche ore. Usa strumenti online di ricerca DNS per verificare lo stato di propagazione del tuo dominio.

Gestendo le connessioni HTTPS e configurando il DNS, crei un sistema di reindirizzamento sicuro per i tuoi domini www e non-www.

Risoluzione dei Problemi Comuni di Reindirizzamento

Gestione dei Loop di Reindirizzamento

I loop di reindirizzamento si verificano quando i reindirizzamenti portano nuovamente all'URL originale, creando un ciclo. Per individuare e risolvere i reindirizzamenti circolari:

  1. Usa strumenti online di verifica dei reindirizzamenti o gli strumenti per sviluppatori del browser per individuare i loop.

  2. Controlla i tuoi file di configurazione Nginx per regole di reindirizzamento in conflitto.

  3. Cerca reindirizzamenti nel tuo sistema di gestione dei contenuti o nei file .htaccess.

Per trovare problemi di reindirizzamento nei log del server:

  1. Accedi ai log di errore di Nginx:

    sudo tail -f /var/log/nginx/error.log
  2. Cerca voci di reindirizzamento ripetute o messaggi di errore.

  3. Usa strumenti di analisi dei log per trovare modelli nel comportamento di reindirizzamento.

Ottimizzazione del Reindirizzamento per i Motori di Ricerca

Per aiutare i motori di ricerca a comprendere i tuoi reindirizzamenti:

  1. Usa reindirizzamenti 301 (permanenti) per www a non-www. Verifica questo nella tua configurazione Nginx:

    return 301 $scheme://esempio.com$request_uri;
  2. Aggiorna la tua sitemap XML:

    • Rimuovi gli URL www
    • Aggiungi gli URL non-www
    • Invia la sitemap aggiornata ai motori di ricerca
  3. Modifica il tuo file robots.txt:

    • Usa la versione non-www nella direttiva Sitemap
    • Esempio:
      Sitemap: https://esempio.com/sitemap.xml
  4. Usa Google Search Console per:

    • Impostare la versione preferita del tuo dominio
    • Controllare errori di crawling relativi ai reindirizzamenti

Risolvendo i loop di reindirizzamento e ottimizzando per i motori di ricerca, puoi migliorare le prestazioni del tuo sito web e la visibilità nelle ricerche.