web-dev-qa-db-fra.com

Redirection d'URL unique avec Nginx - ne fonctionne pas

J'ai essayé de rediriger plusieurs URL simples vers leurs nouveaux emplacements à l'aide de Nginx. Les URL proviennent de Blogger et ont le format suivant: http://domain.com/yyyy/mm/slug.

Par exemple, j'ai ceci: http://example.com/2013/04/chartjs-javascript-library-for-easy.html

J'utilise cette réécriture Nginx pour le rediriger, mais pour une raison quelconque, cela ne fonctionne pas:

server {
     location ~ /([2012-2013]+)/.*/chartjs-javascript-library-for-easy.html {
                return 301 http://$server_name/resource/chart-js;
     }
}

Je place ceci dans /etc/nginx/conf.d/example.conf qui est chargé à l'intérieur de /etc/nginx/nginx.conf

Quelqu'un peut-il me dire pourquoi cela ne fonctionne pas? Cela fonctionnait quelque temps en arrière. Suis-je en train de déconner mon regex?

EDIT:

Pour une raison quelconque, l'emplacement /test redirige ok, mais l'emplacement /test/html ne le fait pas. Une idée pourquoi?

1
Hirvesh

Notez que [2012-2013] ne signifie pas ce que vous pensez qu'il en fait :) [] est une classe caractère, pas une classe numérique :)

Essayez location ~ ^/201[23]/.*/chartjs-javascript-library-for-easy.html

1
Collin Grady