Nginx Rewrite

Je sais c’est pas le group Nginx ici, mais j’ai posté (http://
location and rewrite directive) sur le forum Nginx qui
n’a pas l’air très actif alors je tente ici.

En faite je souhaite effectuer des rewrites, mais je souffre un peu.

Dans mon cas je souhaite rediriger une url périmée => /competitors?
sort=name_categories.name vers la page d’accueil => /articles

Avec cette conf :

server {

location ~* ^/competitors(.)$ {
if ($args ~
^sort=name_categories.name$) {
set $args “”;
rewrite ^(.*)$ $scheme://$host/articles redirect;
break;
}
}
location / {

}
}

Elle fonctionne parfaitement lorsque je saisi l’url périmée mais si je
veux acceder à /competitors ça ne fonctionne plus …

Une idée ?

Merci.

Essaie peut-être ceci

server {

location ~* ^/competitors(.)$ {
if(!args){
break;
}
if ($args ~
^sort=name_categories.name$) {
set $args “”;
rewrite ^(.*)$ $scheme://$host/articles redirect;
break;
}
}
location / {

}
}

Je débute aussi avec Nginx, mais si j’ai bien compris la doc, la
première conditions servira directement le fichier /competitors si
celui-ci ne comporte aucun argument, sinon, il passera dans l’autre
conditions et devrais passer dans ta réecriture.

Bousmanne Cédric
http://cedricbousmanne.com/

Le 10-mai-09 à 16:19, Zaphod B. a écrit :

Ah j’y ai cru !

Ton idée me semblait intéressante.

J’ai essayé ça :

25 location ~* ^/competitors(.)$ {
26 if ($args = “”) { # false values are: empty string
“”, or any string starting with “0”;
27 break;
28 }
29 if ($args ~
^sort=name_categories.name$) {
30 set $args “”;
31 rewrite ^(.*)$ $scheme://$host/articles
redirect;
32 break;
33 }
34 }

Mais ça ne change pas le résultat ! J’y ai cru 2 secondes parce que
hier j’ai essayé mais comme un c… j’avais mis la 2° condition
après …

Merci.