GNU/Linux >> Tutoriels Linux >  >> Linux

Nginx - réécrire ou renvoyer pour redirection ?

Solution 1 :

Votre choix 1 :

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

C'est exactement ce que vous voulez.

Je ne sais pas pourquoi le rewrite ^ http://$host$request_uri? permanent; entraînerait un 302 au lieu de 301. C'est la bonne syntaxe pour le forcer à renvoyer un 301.

Solution 2 :

Techniquement, vous pouvez utiliser les deux options. Ils peuvent fonctionner.

Selon la documentation NGINX, utilisez return si tu peux . C'est plus simple et plus rapide car NGINX arrête de traiter la requête (et n'a pas à traiter une regex). Plus que cela, vous pouvez spécifier un code dans le 3xx série :

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

Si vous avez un scénario où vous devez valider l'URL avec une expression régulière ou devez capturer des éléments dans l'URL d'origine (qui ne sont évidemment pas dans une variable NGINX correspondante), alors vous devez utiliser rewrite . Vous devez savoir que rewrite renvoie uniquement le code 301 ou 302.

rewrite regex URL [flag];

Vous pouvez en savoir plus sur le retour et la réécriture sur le site Web de NGINX.


Linux
  1. Exécutez plusieurs versions de PHP pour différents domaines dans NGNIX

  2. La tuyauterie pour la sortie de boucle empêche la modification de la variable locale ?

  3. Comment configurer la redirection SSL pour le site Web dans Plesk ?

  4. Mod Rewrite pour les permaliens Joomla

  5. meilleure façon de déboguer les règles de réécriture nginx dans le fichier de configuration ?

25 commandes Nginx indispensables pour les développeurs et les administrateurs

NGINX en tant que proxy inverse pour l'application Node ou Angular

Comment configurer HAProxy comme équilibreur de charge pour Nginx dans CentOS 7

Comment configurer Nginx en tant que proxy inverse pour Apache sur Ubuntu 18.04 VPS

Comment installer NGINX en tant que proxy inverse pour Apache sur Ubuntu 18.04

Comment configurer un serveur NGINX RTMP pour le streaming