Clair de Lune Posté 4 Août 2014 Posté 4 Août 2014 Bonjour Je finis un gros ménage dans le site de mon profil, et j'ai un souci de redirection pour quelques très anciens backlinks. Mes nouvelles urls sont sous la forme suivante : /tourisme/post/titre-du-billet Les anciens BLs pointent vers /tourisme/titre-du-billet (mais aussi) /tourisme/?titre-du-billet et il manque donc post/ entre l'URL de base et le titre du billet J'ai essayé deux pistes : 1) Une redirection permanente par URL RedirectPermanent /tourisme/titre-du-billet http://www.domaine.tld/tourisme/post/titre-du-billet Ça fonctionne bien. Il faut le faire pour chaque URL mais il n'en a pas plus d'une douzaine. En revanche, ça ne redirige pas celles qui ont un ? avant le titre du billet. Si je rajoute le ? dans le premier argument de la règle, j'ai une erreur 500 2) Une règle de réécriture : RewriteRule ^tourisme/([a-z]+.*)$ http://www.domaine.tld/post/$1 [R=301,L] ou RewriteRule ^tourisme/$ http://www.domaine.tld/post/$1 [R=301,L] mais ça ne fonctionne pas : l'URL reste inchangée et c'est donc une erreur 404 qui est renvoyée Un connaisseur pourrait-il m'indiquer ce que je fais mal ? Merci d'avance
Nicolas Posté 4 Août 2014 Posté 4 Août 2014 Bonjour Claire de Lune, Puisque c'est le même domaine tu n'as pas besoin de mettre http://.... dans la règle. Essaye avec (.*) = une chaine quelconque RewriteRule ^tourisme/(.*)$ /tourisme/post/$1 [R=301,L]
Clair de Lune Posté 4 Août 2014 Auteur Posté 4 Août 2014 Merci Nicolas Malheureusement j'avais déjà essayé, et aucune redirection n'est faite... Mon .htaccess fonctionne pour d'autres réécritures, mais pas celle-ci, comme si la condition n'était remplie à aucun moment. Voici le contenu réel du fameux fichier avec la ligne ajoutée selon tes conseils : <IfModule mod_rewrite.c> RewriteEngine on RewriteBase / # So-called SEO trash RewriteRule ^lune\.php$ http://www.campingclairdelune.fr/? [L,R=301] # Feed leech RewriteCond %{REMOTE_HOST} ww7\.be$ [OR] RewriteCond %{HTTP_REFERER} ^http(s)?://(.*\.)?ww7\.be/ [NC] RewriteRule .* - [F] # Redirect old BLs RewriteRule ^tourisme/(.*)$ /tourisme/post/$1 [R=301,L] # Force www RewriteCond %{HTTP_HOST} ^campingclairdelune.fr$ RewriteRule ^(.*) http://www.campingclairdelune.fr/$1 [QSA,L,R=301] # Nice URLs RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?$1 </IfModule>
Clair de Lune Posté 5 Août 2014 Auteur Posté 5 Août 2014 Je continue ma quête, en espérant y parvenir tout seul... J'utilise pour mes tests le site http://htaccess.madewithlove.be/ qui permet de voir à partir d'une URL les règles qui seront appliquées et l'URL réécrite Le BL http://www.campingclairdelune.fr/tourisme/le-marche-provencal avec les règles RewriteCond %{REQUEST_URI} tourisme RewriteCond %{REQUEST_URI} !post RewriteRule ^tourisme/(.*)$ /tourisme/post/$1 [R=301,L] est bien modifiée en http://www.campingclairdelune.fr/tourisme/post/le-marche-provencal Mais sur le site réel ça ne fonctionne pas, j'en déduis que soit cet outil n'est pas très fiable, soit qu'une autre règle entre en conflit avec mes bricolages. Malheureusement pour l'instant, je n'ai plus beaucoup d'idées, alors je retourne à ma lecture de la doc de mod_rewrite, ce qui n'est pas de la tarte
Nicolas Posté 5 Août 2014 Posté 5 Août 2014 Tu as essayé en laissant uniquement cette règle (désactive les autres règles) ?
Clair de Lune Posté 5 Août 2014 Auteur Posté 5 Août 2014 Non, je n'ai pas encore essayé Mais si je dois le faire, ce sera très tard le soir, en effet c'est la pleine saison pour les campings en ce moment
Clair de Lune Posté 12 Août 2014 Auteur Posté 12 Août 2014 Je ne m'en sors toujours pas... Pour récapituler, dans le site de ma signature, j'ai un répertoire www/tourisme/, dans lequel j'ai mis le .htaccess suivant : RewriteEngine on RewriteBase /tourisme/ # Old RSS feed RewriteRule ^rss.php(/)?$ http://www.campingclairdelune.fr/tourisme/feed/atom [R=301,L] # Nice URLs RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?$1 L'ancien flux RSS est bien redirigé, et les URLs du blog sont bien réécrites sans le index.php. Je souhaite maintenant que d'anciens BLs de la forme domaine/tourisme/titre-du-billet soient redirigés vers domaine/tourisme/post/titre-du-billet en ajoutant ceci dans mon .htacces RewriteCond %{REQUEST_URI} !post RewriteRule ^tourisme/(.*)$ /tourisme/post/$1 [R=301,L] mais ça ne fonctionne pas. Auriez-vous d'autres idées pour m'indiquer où je me trompe ?
Dan Posté 12 Août 2014 Posté 12 Août 2014 As-tu essayé avec : RewriteRule ^tourisme/(.*)$ http://www.campingclairdelune.fr/tourisme/post/$1 [R=301,L]
Clair de Lune Posté 12 Août 2014 Auteur Posté 12 Août 2014 Merci Dan, mais oui j'ai déjà testé cela suivant le conseil de Nicolas en #2 (sans l'URL complète et avec) et tout marche sur le site, mais aucune redirection n'est effectuée. En revanche, si je supprime dans la règle le mot tourisme et le / qui le suit, j'obtiens de redirection et l'url finale est : domaine/tourisme/post/post/post/post/post/post/post/post/post/post/post/post/post/post/post/post/post/post/post/post/post/titre-du-billet J'ai donc l'impression que le premier argument de la règle telle que tu me la donnes n'est pas pris en compte
Clair de Lune Posté 19 Août 2014 Auteur Posté 19 Août 2014 Bonjour J'ai un peu avancé, et je parviens à rediriger les anciens BLs en query_string domaine/tourisme/?titre-du-billet => domaine/tourisme/post/titre-du-billet avec cet ajout dans le fichier .htaccess # Redirect old query_string BLs RewriteCond %{QUERY_STRING} ^([a-z0-9]+.*)$ RewriteCond %{QUERY_STRING} !^q=.*$ RewriteCond %{QUERY_STRING} !^pf=.*$ RewriteRule ^$ /tourisme/post/%{QUERY_STRING}? [R=301,L] En revanche je n'y parviens toujours pas avec domaine/tourisme/titre-du-billet (sans le ? dans l'url) que voudrais aussi rediriger vers domaine/tourisme/post/titre-du-billet. Pour l'instant donc, j'ai résolu le problème avec un RedirectPermanent pour chaque titre mais j'aimerais mieux quelque chose de générique, et surtout comprendre ce que je fais mal.
Clair de Lune Posté 22 Août 2014 Auteur Posté 22 Août 2014 Je termine mon monologue pour clore ce sujet, ce n'était pas si simple En fait il y avait plusieurs schémas d'URLs dans les backlinks, en effet certains étaient en place depuis une dizaine d'années et le format des URLs avait changé plusieurs fois depuis... Au moyen de l'outil de repérage des erreurs 404 de GWT, j'ai pu trouver la totalité de ces liens et les rediriger correctement. Les différents liens avaient les structures suivantes tourisme/index.php?année/mois/jour/id-titre-du-billet tourisme/index.php?titre-du-billet tourisme/?titre-du-billet tourisme/titre-du-billet Tous redirigés maintenant vers tourisme/post/titre-du-billet \o/ Heureusement les publications du Hub sur la réécriture m'ont beaucoup aidé, et après l'absorption de plusieurs cachets d'aspirine, j'ai pu m'en sortir et je remercie encore Dan pour sa pédagogie
Dan Posté 23 Août 2014 Posté 23 Août 2014 Heureusement les publications du Hub sur la réécriture m'ont beaucoup aidé, et après l'absorption de plusieurs cachets d'aspirine, j'ai pu m'en sortir et je remercie encore Dan pour sa pédagogie Je ne voulais pas sembler prétentieux et te dire "tu as tout ce qu'il te faut, expliqué dans les publications du Hub". Très heureux que tu y aies trouvé ton bonheur ! Merci pour ton compliment. Dan
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant