Existe-t-il un moyen de faire en sorte que nginx traite une variable personnalisée de la même manière qu'il traite le $scheme dans une règle de réécriture ? Par exemple :
rewrite ^/redirect http://example.com;
# and
rewrite ^/redirect_with_scheme $scheme://example.com;
entraîneront tous deux l'envoi d'une redirection 302 au client. Cependant, ceci :
set $real_scheme $scheme;
rewrite ^/redirect_with_real_scheme $real_scheme://example.com;
entraînera une réécriture côté serveur vers un fichier qui n'existe pas nécessairement, puis un message 404 au client. Pour ce que ça vaut, ceci :
set $real_scheme $scheme;
rewrite ^/redirect_with_real_scheme $real_scheme://example.com redirect;
donnera le résultat souhaité, à savoir l'envoi d'un 302 au client. Malheureusement, j'ai beaucoup de redirections configurées de cette façon et je préférerais ne pas les mettre à jour toutes avec la commande redirect
si elle n'est pas nécessaire.
Si cela peut être utile, j'utilise Nginx 1.6.2.