Version complète: sur le forum Webmaster Hub : Redirection 301 avec params
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > Fichier .htaccess et réécriture d'URLs
ZuckBin
Bonjour,

Désole, toujours et encore la même chose.

J'ai ceci, que je souhaite rediriger en 301:

CODE
RewriteRule ^oenotourisme-route-des-vins-(.*)-(.*)\.html$ /mappy-route\.php?id=$1&sub=$2  [NC,L]


et souhaite re-écrire en par exemple ceci:

CODE
tourisme-route-des-vins-2-54.html


Merci de votre aide,
Cordialement.
ZuckBin
Je vais re expliquer mon cas.

Je ne sais quelle est la bonne méthode pour rediriger sans avoir de duplicate content.

Ancienne regle:

CODE
RewriteRule ^oenotourisme-route-des-vins-(.*)-(.*)\.html$ /mappy-route\.php?id=$1&sub=$2  [NC,L]


Nouvelle regle:

CODE
RewriteRule ^tourisme-route-des-vins-([0-9]+)-([0-9]+)-(.*)\.html$ /mappy-route\.php?id=$1&sub=$2  [NC,L]


Comment à partir de l'ancienne regle, je peu mettre en place la nouvelle, faire la redirection et ne pas avoir de duplicate content ?

Comme ceci ?

CODE
RewriteRule ^oenotourisme-route-des-vins-(.*)-(.*)\.html$ /tourisme-route-des-vins-([0-9]+)-([0-9]+)-(.*)\.html$ [R=301,L]


je n'ai pas testé la derniere de peur de faire partir le serveur en boucle infini ou un truc du genre.

Merci de votre aide.
Jeanluc
Bonjour,

Qu'est ce qu'il y a dans la troisième parenthèse dans /tourisme-route-des-vins-([0-9]+)-([0-9]+)-(.*)\.html$ ? .htaccess ne peut pas faire un remplacement automatique d'une URL par une autre si tous les éléments ne sont pas définis d'une façon ou d'une autre.

Je pense qu'il y a une erreur dans ton ancienne et dans ta nouvelle règles. Il ne faut pas de \ devant le point dans l'adresse de droite.

Jean-Luc
ZuckBin
Il y a du texte avec des tirets à l'intérieur.

Exemple:

tourisme-route-des-vins-9-0-Les-vignobles-d-Ile-de-France-de-Suresnes-a-Paris.html
Jeanluc
Si tu veux traiter ça dans le .htaccess, il faut que pour chaque URL, tu aies ceci:
CODE
RedirectPermanent /oenotourisme-route-des-vins-9-0.html http://www.ton_site.com/tourisme-route-des-vins-9-0-Les-vignobles-d-Ile-de-France-de-Suresnes-a-Paris.html


Jean-Luc
ZuckBin
C'est tres bien dans le cas d'une url statique, mais ce sont des urls dynamique.

Avec un Rewritecond ?

ps:j'en ai profité pour nettoyer les \ dans la partie droite avant les . dans les url.
Jeanluc
Ben oui, mais .htaccess ne peut pas deviner tout seul qu'il doit ajouter un texte comme "Les-vignobles-d-Ile-de-France-de-Suresnes-a-Paris" dans l'URL.

Si la liste à mettre dans .htaccess est trop longue, il vaut mieux gérer cela en PHP. Au début du script, tu vérifies si c'est une ancienne URL et si c'est le cas, tu fais la redirection en allant rechercher le texte à ajouter dans une database.

Jean-Luc
ZuckBin
Ok, merci, je vais le tenter comme ca wink.gif

En tentant avec ceci qui est pour une variable, comment proceder pour mes 2 variables ?

CODE
      $URi = $_SERVER["REQUEST_URI"];

          $motif = "'(/index\.php\?id=)+([0-9]+)'";
          if (preg_match($motif,$URi,$capture))
          {
          header("Status: 301 Moved Permanently");
          header("Location: http://www.site.com/index-$capture[2].html");
          exit;
          }
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.