GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Nginx - umschreiben oder zur Umleitung zurückgeben?

Lösung 1:

Ihre Option 1:

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

Ist genau das, was Sie wollen.

Nicht sicher, warum der rewrite ^ http://$host$request_uri? permanent; Zeile würde eine 302 anstelle von 301 ergeben. Das ist die richtige Syntax, um zu erzwingen, dass sie eine 301 zurückgibt.

Lösung 2:

Technisch gesehen können Sie beide Optionen verwenden. Sie können arbeiten.

Verwenden Sie gemäß der NGINX-Dokumentation return wenn du kannst . Es ist einfacher und schneller, da NGINX die Verarbeitung der Anfrage stoppt (und keine Regex verarbeiten muss). Darüber hinaus können Sie in 3xx einen Code angeben Serie:

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

Wenn Sie ein Szenario haben, in dem Sie die URL mit einem regulären Ausdruck validieren oder Elemente in der ursprünglichen URL erfassen müssen (die sich offensichtlich nicht in einer entsprechenden NGINX-Variablen befinden), sollten Sie rewrite verwenden . Das müssen Sie wissen rewrite gibt nur Code 301 oder 302 zurück.

rewrite regex URL [flag];

Weitere Informationen zum Zurückgeben und Umschreiben finden Sie auf der NGINX-Website.


Linux
  1. nginx - 413 Anforderungsentität zu groß

  2. Führen Sie mehrere Versionen von PHP für verschiedene Domains in NGNIX aus

  3. Piping für Schleifenausgang verhindert lokale Variablenänderung?

  4. Mod Rewrite für Joomla Permalinks

  5. Rückgabecode von sed für keine Übereinstimmung

25 Muss Nginx-Befehle für Entwickler und Administratoren kennen

NGINX als Reverse Proxy für Node- oder Angular-Anwendungen

So richten Sie HAProxy als Load Balancer für Nginx in CentOS 7 ein

So richten Sie Nginx als Reverse Proxy für Apache auf Ubuntu 18.04 VPS ein

So installieren Sie NGINX als Reverse Proxy für Apache unter Ubuntu 18.04

So richten Sie einen NGINX RTMP-Server für das Streaming ein