1 votes

Nginx 301 redirections ne fonctionnent pas comme prévu

J'ai ajouté les règles suivantes à mon fichier nginx.conf

rewrite ^/top100/Armin%20van%20Buuren/(.*)$ http://www.example.com/armin-van-buuren/$1 redirect;
rewrite ^/top100/armin-van-buuren/(.*)$ http://www.example.com/armin-van-buuren/$1 redirect;
rewrite ^/top100/(.*)$ http://www.example.com/$1 redirect;

Pour la 1ère règle, cela redirige de www.example.com/top100/Armin%20van%20Buuren/ vers www.example.com/Armin%20van%20Buuren/

Les 2 autres règles fonctionnent bien. Qu'est-ce que j'ai mal fait ici?

3voto

berto Points 221

Nginx utilise des URI normalisées en interne :

La correspondance est effectuée contre une URI normalisée, après le décodage du texte encodé sous la forme “%XX”, la résolution des références aux composants de chemin relatifs “.” et “..”, et la compression éventuelle de deux barres obliques ou plus consécutives en une seule barre oblique.

Utilisez des guillemets (simples ou doubles) pour envelopper l'espace dans une chaîne.

Donc cela serait :

rewrite "^/top100/Armin van Buuren/(.*)$" /armin-van-buuren/$1 redirect;

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X