Aller au contenu

Sujets conseillés

Posté

Bonjour,

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

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

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

et souhaite re-écrire en par exemple ceci:

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

Merci de votre aide,

Cordialement.

Posté

Je vais re expliquer mon cas.

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

Ancienne regle:

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

Nouvelle regle:

RewriteRule ^tourisme-route-des-vins-([0-9]+)-([0-9]+)-(.*)\.html$ /mappy-route\.php?id=$1⊂=$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 ?

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.

Posté

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

Posté

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

Posté

Si tu veux traiter ça dans le .htaccess, il faut que pour chaque URL, tu aies ceci:

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

Posté (modifié)

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.

Modifié par ZuckBin
Posté

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

Posté (modifié)

Ok, merci, je vais le tenter comme ca ;)

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

	  $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;
}

Modifié par ZuckBin

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...