Come reindirizzare NON-WWW e WWW con Nginx

Quando si dispone di un sito Web o di un'applicazione in esecuzione Nginx, è consigliabile consentire ai visitatori di accedere al dominio utilizzando entrambe le versioni www e non www del nome di dominio. Tuttavia, nell'era odierna dell'ottimizzazione per i motori di ricerca e degli utenti che desiderano un'esperienza di navigazione facile e veloce, avere due collegamenti URL può influire negativamente sull'esperienza complessiva del tuo sito web. Tuttavia, questo non significa che dovresti abbandonare uno dei modi in cui i tuoi visitatori accedono al sito. Invece, l'impostazione di un semplice reindirizzamento può migliorare l'esperienza dei visitatori del tuo sito Web, aumentare il riconoscimento dei backlink più rapidamente e migliorare la valutazione SEO.

Nella guida seguente imparerai come reindirizzare un URL www a non www, ad es (www.esempio.com) a (esempio.com) e viceversa con un redirect si chiama a Reindirizzamento permanente, o "reindirizzamenti 301", questo può essere fatto su qualsiasi sistema operativo utilizzando Nginx, gli esempi sono solo per i blocchi del server. Non spiegano come configurarli o come installare Nginx.

Prerequisiti

  • Sistema operativo consigliato: Qualsiasi sistema Linux in grado di eseguire Nginx
  • Account utente: Un account utente con accesso sudo o root.
  • Pacchetti consigliati: arricciare

Installa curl Centos/Rocky Linux/Rhel/Oracle:

sudo yum install curl

Installa curl Debian/Ubuntu/Linux Mint:

sudo apt install curl

pubblicità


Opzione 1: Reindirizza NON-WWW a WWW

Nel primo esempio, aggiungerai il codice sottostante sopra il tuo esistente (www) blocco del nome del server per reindirizzare tutti i visitatori che hanno raggiunto il tuo URL non www solo a un URL www.

HTTP (80)

server {
    server_name    .example.com;
    listen                 80;
    listen                 [::]:80;
    return 301         https://www.example.com$request_uri;
}

HTTPS (443)

server {
    listen                         443 ssl http2;
    listen                          [::]:443 ssl http2;
    server_name             .example.com;

    # SSL
    ssl_certificate                 /path/to/cert.pem;
    ssl_certificate_key         /path/to/key.pem;
    ssl_trusted_certificate    /path/to/cert.crt;
    return                             301 https://www.example.com$request_uri;
}

Nota, assicurati ($request_uri) non viene rimosso in quanto ciò può causare problemi con tutti i collegamenti non www semplicemente reindirizzando alla tua home page.

Un esempio di questo è https://example.com/random-topic. Se ($request_uri) non viene aggiunto, verrà semplicemente deviato su www.example.com invece di https://www.example.com/random-topic, il che frustrerà i tuoi visitatori e danneggerà il tuo posizionamento nei motori di ricerca con i crawler che ottengono confuso.

Opzione 2: Reindirizza WWW a NON-WWW

Nel secondo esempio, aggiungerai il codice seguente sopra il tuo esistente (non www) blocco del nome del server per reindirizzare tutti i visitatori che hanno raggiunto il tuo URL www solo a un URL non www.

HTTP (80)

server {
    server_name     www.example.com;
    listen                 80;
    listen                 [::]:80;
    return 301         https://example.com$request_uri;
}

HTTPS (443)

server {
    listen                  443 ssl http2;
    listen                  [::]:443 ssl http2;
    server_name     www.example.com;

    # SSL
    ssl_certificate                /path/to/cert.pem;
    ssl_certificate_key        /path/to/key.pem;
    ssl_trusted_certificate   /path/to/cert.crt;
    return                             301 https://example.com$request_uri;
}

Come indicato alla fine dell'Opzione 1, assicurati ($request_uri) non viene rimosso. Questa è una parte essenziale.

Nota, assicurati di inserire i certificati e la chiave per i reindirizzamenti HTTPS o hai problemi.


pubblicità


Conferma modifiche

Prima di riavviare l'istanza di Nginx, è meglio eseguire un test per assicurarti che non ci siano errori in ciò che hai appena aggiunto. Per testare, eseguire il seguente comando:

sudo nginx -t

Se tutto è ok, dovresti ottenere il seguente output:

nginx: the configuration file /etc/nginx/my-server.conf syntax is ok
nginx: configuration file /etc/nginx/my-server.conf test is successful

Procedi a riavviare il tuo servizio Nginx per rendere attive le modifiche:

sudo systemctl restart nginx

Questo è tutto! Hai completato il reindirizzamento. Per verificare se il reindirizzamento funziona, eseguire quanto segue:

test di reindirizzamento non da www a www

curl -I https://example.com

Esempio di output:

HTTP/1.1 301 Moved Permanently
 Server: nginx/1.21.1 (Ubuntu)
 Date: Mon, 14 July 2021 18:20:19 GMT
 Content-Type: text/html
 Content-Length: 193
 Connection: keep-alive
 Location: http://www.example.com/

Test di reindirizzamento da www a non www

curl -I https://www.example.com

Esempio di output:

HTTP/1.1 301 Moved Permanently
 Server: nginx/1.21.1 (Ubuntu)
 Date: Mon, 14 July 2021 18:21:33 GMT
 Content-Type: text/html
 Content-Length: 193
 Connection: keep-alive
 Location: http://example.com/

Commenti e Conclusione

Nella guida, hai imparato come aggiungere facilmente e rapidamente sia la direzione www che non www al blocco del sito del server di Nginx, il che migliorerà l'esperienza complessiva dei tuoi visitatori visitando solo un URL anziché due.

Come spiegato all'inizio della guida, la SEO sta diventando sempre più cruciale, i motori di ricerca contrassegnano costantemente i siti Web e avere due URL con potenziali contenuti duplicati è un grande segno rosso contro il tuo sito web. L'aggiunta di questo reindirizzamento può aumentare rapidamente il tuo posizionamento e i tuoi backlink.

Lascia un tuo commento