Nginx: redirections en masse

Lors de la migration d’un blog, j’ai eu besoin de gérer des redirections permanentes (301) pour un grand nombre d’urls, entre 600 et 700 pour être précis. Malheureusement ces redirections ne peuvent être factorisées avec des patterns, ce sont que des urls uniques.

Pour ne pas charger la configuration de votre vhost dans nginx, vous pouvez utiliser le mot clé include pour stocker vos redirections dans un fichier à part.

Dans mon cas, la configuration nginx ressemble alors à ça :

  • /etc/nginx/site-enabled/v3.conf
server {
    listen 443 ssl;
    [...]
    include /etc/nginx/conf.d/v3.redirects
    [...]
    location / {
    [...]
    }
}

 

  • /etc/nginx/conf.d/v3.redirects
[...]
rewrite ^/le-stress(.*) /conseils/relaxation/le-stress$1 permanent;
[...]

Le fichier v3.redirects a été généré avec un script, il fait 625 lignes.

Cela fonctionne très bien pour un nombre limité de redirects. Si vraiment vous deviez gérer un nombre important de redirections, regardez du côté de lua et redis.