Redirection permanente (ou 301) qui ne fonctionne pas

El-Cherubin

WRInaute discret
Bonsoir/Bonjour


Pour le site suivant : -http://old.societe.com j'ai créer des rewrite rules, afin d'avoir des urls plus propres.
Jusque la pas de probleme, le souci c'est que le CMS que j'utilise mes créer des doublons de pages, et en fait j'ai entre 2 et 4 urls pour un meme contenu, donc duplicate content :(
Je souhaitais faire des redirections permanentes de ces possibilités d'urls vers l'url réécrite mais ça ne fonctionne pas...

Voici mon htaccess :

Options +FollowSymlinks
RewriteEngine on


RewriteRule /?9-accueil-produits-coca-societe-s-a-r-l *ttp://old.societe.com [R=301] # *ttp = http
RewriteRule /index.php?9-accueil-produits-coca-societe-s-a-r-l *ttp://old.societe.com [R=301]

RewriteRule ^information-societe.html$ /?003/Informations
RewriteRule /?003/Informations /information-societe.html [R=301] #Je ne sais pas si c'est possible étant donné que je m'en sers juste au dessus... Je l'ai fait pour chaque url récrite
RewriteRule /index.php?003/Informations /information-societe.html [R=301]
RewriteRule /?7-informations-legales-coordonnees /information-societe.html [R=301]
RewriteRule /index.php?7-informations-legales-coordonnees /information-societe.html [R=301]

RewriteRule ^contact.html$ /index.php?contact=contact
RewriteRule /index.php?contact=contact /contact.html [R=301]

RewriteRule ^fiches-techniques-coca.html$ /?002/Fiches-techniques
RewriteRule /?002/Fiches-techniques /fiches-techniques-coca.html [R=301]
RewriteRule /index.php?002/Fiches-techniques /fiches-techniques-coca.html [R=301]

RewriteRule ^produits-coca.html$ /?001/Nos-produits
RewriteRule /?001/Nos-produits /produits-coca.html [R=301]
RewriteRule /index.php?001/Nos-produits /produits-coca.html [R=301]
RewriteRule /index.php?6-sommaire-liste-de-nos-produits /produits-coca.html [R=301]
RewriteRule /?6-sommaire-liste-de-nos-produits /produits-coca.html [R=301]

RewriteRule ^plan-site.html$ /index.php?plan=plan

ErrorDocument 404 /erreur404.php

EDIT : Je viens de voir que mes réécritures foutaient le bordel à l'intérieur ... -http://old.societe.com/fiches-techniques-coca.html?20-tuyaux-flexibles-equipes-et-compensateurs par exemple, au lieu de -http://old.societe.com/?20-tuyaux-flexibles-equipes-et-compensateurs
Tout a recommencer je crois...


Je précise, je suis (toujours) débutant en rewrite...

Le site est en faite statique, enfin, ne changera quasiment pas, c'est pourquoi j'ai pas pousser plus loin la réécriture à la volée comme on peut le voir sur d'autres CMS (puis pour etre honnete, je ne sais pas comment faire)


Pourriez vous m'expliquez pourquoi mes 301 ne fonctionne pas svp?



Merci d'avance

PS: désolé pour le doublon sur un autre forum, je suis arrivé dans cette section sur les conseils de ce site : http://www.urlrewriting.fr/forums.php
 

webmasterlamogere

WRInaute passionné
RewriteRule n'accepte pas d'url avec des paramètres. Pour tester une url avec paramètre il faut utiliser une RewriteCond :
Code:
RewriteCond %{QUERY_STRING} ^9-accueil-produits-ptfe-capel-s-a-r-l$
RewriteRule ^$ http://old.accapel.com/ [R=301]
 

El-Cherubin

WRInaute discret
Merci, cependant j'ai toujours du mal a appliquer ce que tu me donnes...

Exemple :

RewriteCond %{QUERY_STRING} ^contact=(.*)$
RewriteRule ^index\.php$ *ttp://old.societe.com/%1.html? [L,R=301]
RewriteRule ^contact.html$ /index.php?contact=contact

La redirection fonctionne, -http://old.societe.com/index.php?contact=contact renvoie vers -http://old.societe.com/contact.html cependant, j'ai maintenant une erreur pour la page /contact.html ... Meme pas une 404, une erreur de chargement...


En fait, ce que je souhaite faire est je pense (pas sur mais je crois ^^) relativement simple.

J'ai ces urls (par groupe) :

-http://old.societe.com/?003/Informations
-http://old.societe.com/index.php?003/Informations
-http://old.societe.com/?7-informations-legales-coordonnees
-http://old.societe.com/index.php?7-informations-legales-coordonnees

Réécrit en /information-societe.html
Mais il faut aussi que ces "anciennes urls" soient rediriger de façon permanente vers l'url réécrite pour éviter les doublons d'urls.


-http://old.societe.com/index.php?contact=contact

Réécrit en /contact.html
Mais il faut aussi que ces "anciennes urls" soient rediriger de façon permanente vers l'url réécrite pour éviter les doublons d'urls.


-http://old.societe.com/?002/Fiches-techniques
-http://old.societe.com/index.php?002/Fiches-techniques

Réécrit en /fiches-techniques-coca.html
Mais il faut aussi que ces "anciennes urls" soient rediriger de façon permanente vers l'url réécrite pour éviter les doublons d'urls.


-http://old.societe.com/index.php?001/Nos-produits
-http://old.societe.com/?001/Nos-produits
-http://old.societe.com/index.php?6-sommaire-liste-de-nos-produits
-http://old.societe.com/?6-sommaire-liste-de-nos-produits

Réécrit en /produits-coca.html
Mais il faut aussi que ces "anciennes urls" soient rediriger de façon permanente vers l'url réécrite pour éviter les doublons d'urls.


-http://old.societe.com/index.php?plan=plan

Réécrit en /plan-site.html
Mais il faut aussi que ces "anciennes urls" soient rediriger de façon permanente vers l'url réécrite pour éviter les doublons d'urls.



Soit 2 choses, tout d'abord avoir la possibilité de réécrire les urls plus proprement, et pour proteger du duplicate mettre des 301.
Est ce possible? (techniquement parlant)

Autre question, pour faire "plus simple" est il possible de faire de "multiples" redirections permanentes.
Par exemple : RedirectPermanent /ancienne-url.ext + /ancienne-url2.ext + /ancienne-url3.ext vers -http://manouvellepage.ext



Je suis désolé, c'est vraiment le bordel... :(

Je te remercie d'avance pour tes éclaircissements :)
 

Vap

WRInaute impliqué
Ca n'a rien a voir, mais si tu utilise les balises code pour includre ton .htaccess, tu n'a pas besoin de mettre *ttp. Démonstration:

Code:
http://www.monsite.com

Le lien n'est pas actif.

Je dis ça, car pour éviter tout problème il vaut mieux couper coller le .htaccess sans l'éditer quand tu veut le mettre ici. Toute édition peut introduire un pb qui n'était pas là au départ...
 

webmasterlamogere

WRInaute passionné
tu ne peux pas mettre une redirection et une réécriture ensemble car ça boucle. Pour éviter cela il faut ajouter un paramètre à la réécriture pour éviter que cela vérifie la condition :
Code:
RewriteCond %{QUERY_STRING} ^contact=(.*)$
RewriteRule ^index\.php$ /%1.html? [L,R=301]
RewriteRule ^contact.html$ /index.php?contact=contact&rewrite [L]
 

El-Cherubin

WRInaute discret
Ah... merci beaucoup pour cette précision :)

Cependant, encore une petite question, pour le cas ou j'ai 4 urls différentes pour un même contenu comme ici :

-http://old.societe.com/?003/Informations
-http://old.societe.com/index.php?003/Informations
-http://old.societe.com/?7-informations-legales-coordonnees
-http://old.societe.com/index.php?7-informations-legales-coordonnees

Puis je effectuer cela :

Code:
RewriteCond %{QUERY_STRING} ^?003/Informations$
RewriteRule ^$ /%1.html? [L,R=301]
RewriteRule ^informations-societe.html$ /?003/Informations&rewrite [L]

#creation de la réécriture et premiere redirection le tout ensemble


#Ensuite, les redirections qui suivent

RewriteCond %{QUERY_STRING} ^index.php?003/Informations$
RewriteRule ^$ http://www.societe.com/informations-societe.html? [R=301]

RewriteCond %{QUERY_STRING} ^?7-informations-legales-coordonnees$
RewriteRule ^$ http://www.societe.com/informations-societe.html? [R=301]

RewriteCond %{QUERY_STRING} ^index.php?7-informations-legales-coordonnees$
RewriteRule ^$ http://www.societe.com/informations-societe.html? [R=301]
 

webmasterlamogere

WRInaute passionné
le paramètre query string ne contient que ce qui se trouve après le "?"
essaye :
Code:
RewriteCond %{QUERY_STRING} ^003/Informations$
RewriteRule ^(index\.php)?$ /%1.html? [L,R=301]
RewriteRule ^informations-societe.html$ /?003/Informations&rewrite [L]

#creation de la réécriture et premiere redirection le tout ensemble


#Ensuite, les redirections qui suivent

RewriteCond %{QUERY_STRING} ^7-informations-legales-coordonnees$
RewriteRule ^(index\.php)?$ http://www.societe.com/informations-societe.html? [R=301]
 

El-Cherubin

WRInaute discret
D'accord, je vais tester ça, pour ce qui est de mes redirections qui suivent, c'est OK? il n'y a pas de contre-indications?
Elles ne vont pas s'annuler ou se bloquer?

Merci beaucoup pour ton aide :)
 

Discussions similaires

Haut