GNU/Linux >> Linux Esercitazione >  >> Linux

Nginx:riscrittura o ritorno per il reindirizzamento?

Soluzione 1:

La tua opzione 1:

return 301 $scheme://$host$request_uri;

È esattamente quello che vuoi.

Non sono sicuro del perché il rewrite ^ http://$host$request_uri? permanent; la riga risulterebbe in un 302 invece di 301. Questa è la sintassi corretta per costringerlo a restituire un 301.

Soluzione 2:

Tecnicamente, puoi usare entrambe le opzioni. Possono funzionare.

Secondo la documentazione di NGINX, usa return se puoi . È più semplice e veloce perché NGINX interrompe l'elaborazione della richiesta (e non deve elaborare una regex). Inoltre, puoi specificare un codice nel 3xx serie:

return (301 | 302 | 303 | 307) url;

Se hai uno scenario in cui devi convalidare l'URL con una regex o hai bisogno di acquisire elementi nell'URL originale (che ovviamente non sono in una variabile NGINX corrispondente), allora dovresti usare rewrite . Devi sapere che rewrite restituisce solo il codice 301 o 302.

rewrite regex URL [flag];

Puoi leggere ulteriori informazioni su restituzione e riscrittura sul sito web di NGINX.


Linux
  1. nginx - 413 Entità richiesta troppo grande

  2. Esegui più versioni di PHP per diversi domini in NGNIX

  3. Le tubazioni per l'uscita del circuito impediscono la modifica delle variabili locali?

  4. Restituisce il codice di sed per nessuna corrispondenza

  5. Autorizzazioni per la chiave SSL?

25 Devi conoscere i comandi di Nginx per sviluppatori e amministratori

NGINX come proxy inverso per applicazioni Node o Angular

Come configurare HAProxy come Load Balancer per Nginx in CentOS 7

Come configurare Nginx come proxy inverso per Apache su Ubuntu 18.04 VPS

Come installare NGINX come proxy inverso per Apache su Ubuntu 18.04

Come configurare un server NGINX RTMP per lo streaming