GNU/Linux >> Linux Esercitazione >  >> Linux

Come reindirizzare gli URL utilizzando Nginx

Cos'è un reindirizzamento?

Un reindirizzamento è una funzione del server Web che reindirizza il traffico da un URL all'altro. I reindirizzamenti sono una caratteristica importante quando se ne presenta la necessità. Esistono diversi tipi di reindirizzamenti, ma le forme più comuni sono temporanee e permanenti. In questo articolo, forniremo alcuni esempi di reindirizzamento tramite il file vhost, forzatura di una connessione HTTPS sicura, reindirizzamento a www e non www, nonché la differenza tra reindirizzamenti temporanei e permanenti.

Nota Poiché si tratta di un server Nginx, le regole .htaccess non verranno applicate. Se stai utilizzando l'altro server web popolare, Apache, troverai utile questo articolo.

Metodi comuni per i reindirizzamenti

I reindirizzamenti temporanei (codice di risposta:302 Trovato) sono utili se un URL viene temporaneamente servito da una posizione diversa. Ad esempio, sono utili durante l'esecuzione della manutenzione e possono reindirizzare gli utenti a una pagina di manutenzione.

Tuttavia, i reindirizzamenti permanenti (codice di risposta:301 spostato in modo permanente) informano il browser che c'era un vecchio URL a cui dovrebbe dimenticare e non tentare più di accedere. Questi sono utili quando il contenuto è stato spostato da un luogo all'altro.

Come reindirizzare

Quando si tratta di Nginx, questo viene gestito all'interno di un .conf file, che si trova in genere nella directory principale del documento dei tuoi siti, /etc/nginx/sites-available/nome_directory .conf . La directory principale del documento è dove risiedono i file del tuo sito e a volte può trovarsi in /html se hai un sito sul server. Oppure, se il tuo server ha più siti, può essere su /domain.com. In ogni caso, quello sarà il nome del tuo file .conf. In /etc/nginx/sites-available/ troverai la directory predefinita file che puoi copiare o utilizzare per aggiungere i tuoi reindirizzamenti. Oppure puoi creare un nuovo nome file html.conf o domain.com.conf.

NotaSe scegli di creare un nuovo file, assicurati di aggiornare i tuoi collegamenti simbolici in /etc/nginx/sites-enabled. Con il comando:

ln -s /etc/nginx/sites-available/domain.com.conf /etc/nginx/sites-enabled/domain.com.conf

Il primo esempio che tratteremo è il reindirizzamento di una pagina/directory specifica alla nuova pagina/directory.

Reindirizzamento temporaneo da pagina a pagina

server {
# Temporary redirect to an individual page
rewrite ^/oldpage$ http://www.domain.com/newpage redirect;
}

Reindirizzamento permanente da pagina a pagina

server {
# Permanent redirect to an individual page
rewrite ^/oldpage$ http://www.domain.com/newpage permanent;
}

Reindirizzamento permanente da www a non www

server {
# Permanent redirect to non-www
server_name www.domain.com;
rewrite ^/(.*)$ http://domain.com/$1 permanent;
}

Reindirizzamento permanente a www

server {
# Permanent redirect to www
server_name domain.com;
rewrite ^/(.*)$ http://www.newdomain.com/$1 permanent;
}

A volte sorge la necessità di cambiare il nome di dominio di un sito web. In questo caso, un reindirizzamento dall'URL del vecchio sito all'URL del nuovo sito sarà molto utile per far sapere agli utenti che il dominio è stato spostato a un nuovo URL.

Il prossimo esempio che tratteremo è il reindirizzamento di un vecchio URL a un nuovo URL.

Reindirizzamento permanente al nuovo URL

server {
# Permanent redirect to new URL
server_name olddomain.com;
rewrite ^/(.*)$ http://newdomain.com/$1 permanent;
}

Abbiamo aggiunto il reindirizzamento utilizzando la direttiva di riscrittura di cui abbiamo discusso in precedenza. Il ^/(.*)$ l'espressione regolare utilizzerà tutto dopo la / nell'URL. Ad esempio, http://vecchio domain.com/index.html reindirizzerà a http://nuovo dominio.com/indice.html. Per ottenere il reindirizzamento permanente, aggiungiamo permanente dopo la direttiva di riscrittura come puoi vedere nel codice di esempio.

Quando si tratta di HTTPS e di essere completamente sicuro, è l'ideale per costringere tutti a utilizzare https:// invece di http://.

Reindirizzamento a HTTPS

server {
# Redirect to HTTPS
listen      80;
server_name domain.com www.domain.com;
return      301 https://example.com$request_uri;
}

Dopo aver implementato queste regole di riscrittura, si consiglia di testare la configurazione prima di eseguire un riavvio. La sintassi di Nginx può essere verificata con -t flag per assicurarsi che non sia presente un errore di battitura nel file.

Controllo della sintassi di Nginx

nginx -t

Se non viene restituito nulla, la sintassi è corretta e Nginx deve essere ricaricato affinché i reindirizzamenti abbiano effetto.

Riavvio di Nginx

service nginx reload

Per CentOS 7 che a differenza di CentOS 6 , usa systemd:

systemctl restart nginx

Reindirizzamenti su WordPress/WooCommerce gestiti

Se utilizzi i nostri prodotti WordPress/WooCommerce gestiti, i reindirizzamenti possono avvenire tramite /home/s#/nginx/redirects.conf file. Ogni sito avrà il proprio s# che è l'utente FTP/SSH per sito. Il plugin chiamato "Redirection" può essere scaricato per aiutare con un semplice reindirizzamento da pagina a pagina, altrimenti il ​​file redirects.conf può essere utilizzato anche per aggiungere reindirizzamenti più specifici usando gli esempi spiegati sopra.

A causa della natura di una piattaforma gestita, dopo aver impostato le regole all'interno del file redirects.conf, contatta il supporto e chiedi il ricaricamento di Nginx. Se non ti senti a tuo agio nell'eseguire i passaggi descritti sopra, contatta il nostro team di supporto tramite chat, ticket o telefonata. Con Managed WordPress/WooCommerce hai un supporto disponibile 24 ore su 24, 7 giorni su 7 e pronto ad aiutarti!


Linux
  1. Come utilizzare Nginx per reindirizzare

  2. Come disabilitare ETag in NGINX

  3. Come abilitare HTTP2 in NGINX

  4. Come posso reindirizzare il mio sito utilizzando un file htaccess (punto)?

  5. Come impedire a nginx di utilizzare la porta 80

Come bloccare XML-RPC in WordPress usando Nginx/Apache

Come abilitare IPv6 in Nginx?

Come installare WordPress usando Nginx in Ubuntu Linux

Come reindirizzare gli URL www a non www in WordPress

Come installare WordPress su uno stack Nginx LEMP utilizzando Ubuntu 14.04

Come installare Nginx su CentOS 7?