GNU/Linux >> Znalost Linux >  >> Linux

Nginx - přepsat nebo vrátit pro přesměrování?

Řešení 1:

Vaše možnost 1:

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

Je přesně to, co chcete.

Nejste si jisti, proč rewrite ^ http://$host$request_uri? permanent; řádek by vedl k 302 místo 301. To je správná syntaxe, která přinutí vrátit 301.

Řešení 2:

Technicky můžete použít obě možnosti. Mohou fungovat.

Podle dokumentace NGINX použijte return pokud můžete . Je to jednodušší a rychlejší, protože NGINX přestane zpracovávat požadavek (a nemusí zpracovávat regulární výraz). Více než to, můžete zadat kód v 3xx série:

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

Pokud máte scénář, kdy potřebujete ověřit adresu URL pomocí regulárního výrazu nebo potřebujete zachytit prvky v původní adrese URL (které samozřejmě nejsou v odpovídající proměnné NGINX), měli byste použít rewrite . Musíte vědět, že rewrite vrátí pouze kód 301 nebo 302.

rewrite regex URL [flag];

Více o návratu a přepsání si můžete přečíst na webu NGINX.


Linux
  1. nginx - 413 entita požadavku je příliš velká

  2. Spusťte více verzí PHP pro různé domény v NGNIX

  3. Oprávnění pro klíč SSL?

  1. Potrubí pro výstup smyčky brání místním proměnným modifikacím?

  2. Jak nastavit přesměrování SSL pro web v Plesku?

  3. Mod Rewrite pro Joomla Permalinks

  1. Jak nakonfigurovat Nginx Reverse Proxy pro Kibana

  2. Návratový kód sed pro žádnou shodu

  3. nejlepší způsob, jak ladit pravidla přepisu nginx v konfiguračním souboru?