Redirection pour eviter des doublons
39 messages • Page 2 sur 3 • 1, 2, 3
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
Salut,
Un peu d'aide serait le bien venu
J'essaie de rewritter mes anciennes url et de faire une redirection des anciennes url vers les nouvelles via un htaccess mais j'ai quelques difficultés, ça marche pas :
Mes anciennes url sont du type :
Mes nouvelles url sont du type :
Je souhaiterai établir une règle qui me permette de ré-écrire mes url et une autre qui redirige mes anciennes url vers les nouvelles afin d'éviter le duplicate content, comment faire cela ?
J'ai essayé ça mais ça marche pas :
Voyez-vous une ou des erreur(s) ?
Merci pour vos réponses.
Un peu d'aide serait le bien venu
J'essaie de rewritter mes anciennes url et de faire une redirection des anciennes url vers les nouvelles via un htaccess mais j'ai quelques difficultés, ça marche pas :
Mes anciennes url sont du type :
http://www.mon-site.com/repertoire/index.php?rub=ma_rubrique&module=liste&ref=25
Mes nouvelles url sont du type :
http://www.mon-site.com/repertoire/ma-rubrique-25.html
Je souhaiterai établir une règle qui me permette de ré-écrire mes url et une autre qui redirige mes anciennes url vers les nouvelles afin d'éviter le duplicate content, comment faire cela ?
J'ai essayé ça mais ça marche pas :
RewriteCond %{QUERY_STRING} ^rub=ma_rubrique&module=liste&ref=$
RewriteRule ^repertoire/index.php?rub=ma_rubrique&module=liste&ref=(.*)$ /mon-site.com/repertoire/ma-rubrique-$1.html [R=301,L]
RewriteRule ^repertoire/ma-rubrique-(.*).html$ /mon-site.com/repertoire/index.php?rub=ma_rubrique&module=liste&ref=$1?stop [L]
Voyez-vous une ou des erreur(s) ?
Merci pour vos réponses.
Il y a une erreur sur ta condition. Tu termine la chaine avec le =, alors qu'il y a encore le numéro de rubrique.
Essaie ça:
Si la premiere regle ne arche pas parce que la QUERY_STRING est rajoutée, remplace la par:
Essaie ça:
- Code: Tout sélectionner
RewriteCond %{QUERY_STRING} ^rub=ma_rubrique&module=liste&ref=(.*)$
RewriteRule ^repertoire/index\.php(.*) /mon-site.com/repertoire/ma-rubrique-%1.html [R=301,L]
RewriteRule ^repertoire/ma-rubrique-(.*).html$ /mon-site.com/repertoire/index.php?rub=ma_rubrique&module=liste&ref=$1?stop [L]
Si la premiere regle ne arche pas parce que la QUERY_STRING est rajoutée, remplace la par:
- Code: Tout sélectionner
RewriteCond %{QUERY_STRING} ^rub=ma_rubrique&module=liste&ref=(.*)$
RewriteRule ^repertoire/index\.php(.*) /mon-site.com/repertoire/ma-rubrique-%1.html? [R=301,L]
RewriteRule ^repertoire/ma-rubrique-(.*).html$ /mon-site.com/repertoire/index.php?rub=ma_rubrique&module=liste&ref=$1?stop [L]
Merci Vap pour ta réponse mais ça ne marche pas
Je ne vois pas de différence entre 2 tes propositions, est-ce normal ?
Est-ce que tu confirmes qu'il faut bien mettre -%1.html et pas -$1.html à la fin de la deuxième ligne de ton code ?
Je ne vois pas de différence entre 2 tes propositions, est-ce normal ?
Est-ce que tu confirmes qu'il faut bien mettre -%1.html et pas -$1.html à la fin de la deuxième ligne de ton code ?
poupilou a écrit:Merci Vap pour ta réponse mais ça ne marche pas![]()
[/quote ]
Qu'est ce qui ne marche pas?poupilou a écrit:Je ne vois pas de différence entre 2 tes propositions, est-ce normal ?
Il y a un ? a la fin de la premiere règle dans ma deuxième proposition. C'est pour éviter qu'il rajoute la query string (ce qu'il y avait apres le ? dans l'url originale)poupilou a écrit:Est-ce que tu confirmes qu'il faut bien mettre -%1.html et pas -$1.html à la fin de la deuxième ligne de ton code ?
Oui. Car on récupère la chaine de caratère qui est entre parenthese dans la condition.
Je testerai a mon retour chez moi.
Vap en fait lorsque j'utilise ce code :
ou avec le point d'interrogation à la fin de la deuxième lignes :
ni mes anciennes, ni mes nouvelles url fonctionnent ça me renvoie une erreur 404.
Si j'utilise ce code :
mes anciennes url fonctionnent mais pas les nouvelles ! Même chose si je remplace le %1 par $1
J'ai essayé aussi de remplacer le %{QUERY_STRING} par %{REQUEST_URI} mais ça change rien
- Code: Tout sélectionner
RewriteCond %{QUERY_STRING} ^rub=ma_rubrique&module=liste&ref=(.*)$
RewriteRule ^repertoire/index\.php(.*) /mon-site.com/repertoire/ma-rubrique-%1.html [R=301,L]
RewriteRule ^repertoire/ma-rubrique-(.*).html$ /mon-site.com/repertoire/index.php?rub=ma_rubrique&module=liste&ref=$1?stop [L]
ou avec le point d'interrogation à la fin de la deuxième lignes :
- Code: Tout sélectionner
RewriteCond %{QUERY_STRING} ^rub=ma_rubrique&module=liste&ref=(.*)$
RewriteRule ^repertoire/index\.php(.*) /mon-site.com/repertoire/ma-rubrique-%1.html? [R=301,L]
RewriteRule ^repertoire/ma-rubrique-(.*).html$ /mon-site.com/repertoire/index.php?rub=ma_rubrique&module=liste&ref=$1?stop [L]
ni mes anciennes, ni mes nouvelles url fonctionnent ça me renvoie une erreur 404.
Si j'utilise ce code :
- Code: Tout sélectionner
RewriteCond %{QUERY_STRING} ^rub=ma_rubrique&module=liste&ref=(.*)$
RewriteRule ^repertoire/index\.php?rub=ma_rubrique&module=liste&ref=(.*) /mon-site.com/repertoire/ma-rubrique-%1.html [R=301,L]
RewriteRule ^repertoire/ma-rubrique-(.*).html$ /mon-site.com/repertoire/index.php?rub=ma_rubrique&module=liste&ref=$1?stop [L]
mes anciennes url fonctionnent mais pas les nouvelles ! Même chose si je remplace le %1 par $1
J'ai essayé aussi de remplacer le %{QUERY_STRING} par %{REQUEST_URI} mais ça change rien
-

webmasterlamogere - WRInaute accro

- Messages: 1874
- Inscription: Dim Déc 17, 2006 21:08
il n'est pas possible de mettre des paramètres dans la partie gauche des RewriteRule. Il faut mettre &stop sinon il y a deux ?
avec ca :
avec ca :
- Code: Tout sélectionner
RewriteCond %{QUERY_STRING} ^rub=ma_rubrique&module=liste&ref=(.*)$
RewriteRule ^repertoire/index\.php$ /mon-site.com/repertoire/ma-rubrique-%1.html [R=301,L]
RewriteRule ^repertoire/ma-rubrique-(.*).html$ /mon-site.com/repertoire/index.php?rub=ma_rubrique&module=liste&ref=$1&stop [L]
Merci pour ta réponse webmasterlamogere mais ça ne marche pas non plus, Internet Explorer m'affiche une page d'erreur avec le message suivant "Internet Explorer ne peut pas afficher cette page web" et j'ai essayé avec les anciennes commes les nouvelles url
Il me reste la possibilité de mettre ce bout de code dans mon code html du style :
Mais bon si je pouvais faire cela dans le htaccess ce serait quand même mieux !
Il me reste la possibilité de mettre ce bout de code dans mon code html du style :
- Code: Tout sélectionner
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.mon-site.com/repertoire/ma-rubrique-12.html");
exit;
Mais bon si je pouvais faire cela dans le htaccess ce serait quand même mieux !
-

webmasterlamogere - WRInaute accro

- Messages: 1874
- Inscription: Dim Déc 17, 2006 21:08
c'est peut-être avec ca :
- Code: Tout sélectionner
RewriteCond %{QUERY_STRING} ^rub=ma_rubrique&module=liste&ref=(.*)$
RewriteRule ^repertoire/index\.php$ /repertoire/ma-rubrique-%1.html [R=301,L]
RewriteRule ^repertoire/ma-rubrique-(.*)\.html$ /repertoire/index.php?rub=ma_rubrique&module=liste&ref=$1&stop [L]
-

webmasterlamogere - WRInaute accro

- Messages: 1874
- Inscription: Dim Déc 17, 2006 21:08
il ne faut pas oublier "RewriteEngine on" en premier :
- Code: Tout sélectionner
RewriteEngine on
RewriteCond %{QUERY_STRING} ^rub=ma_rubrique&module=liste&ref=(.*)$
RewriteRule ^repertoire/index\.php$ /repertoire/ma-rubrique-%1.html [R=301,L]
RewriteRule ^repertoire/ma-rubrique-(.*)\.html$ /repertoire/index.php?rub=ma_rubrique&module=liste&ref=$1&stop [L]
Le "RewriteEngine on" est bien mis dans mon htaccess.
Dans ton dernier code tu as enlevé le /mon-site.com si tu enlèves ça en local ça ne peut pas marcher, non ? De toute manière, j'ai essayé avec et sans /mon-site.com mais ça change rien, même résultat, toujours la page d'erreur "Internet Explorer ne peut pas afficher cette page web"
Dans ton dernier code tu as enlevé le /mon-site.com si tu enlèves ça en local ça ne peut pas marcher, non ? De toute manière, j'ai essayé avec et sans /mon-site.com mais ça change rien, même résultat, toujours la page d'erreur "Internet Explorer ne peut pas afficher cette page web"
-

webmasterlamogere - WRInaute accro

- Messages: 1874
- Inscription: Dim Déc 17, 2006 21:08
poupilou a écrit:Le "RewriteEngine on" est bien mis dans mon htaccess.
Dans ton dernier code tu as enlevé le /mon-site.com si tu enlèves ça en local ça ne peut pas marcher, non ? De toute manière, j'ai essayé avec et sans /mon-site.com mais ça change rien, même résultat, toujours la page d'erreur "Internet Explorer ne peut pas afficher cette page web"
si le chemin est h**p://localhost/mon-site.com/repertoire/index.php?... il faut bien mettre le chemin complet : /mon-site.com/repertoire/index.php
le fichier .htacess doit être dans le répertoire /mon-site.com
-

webmasterlamogere - WRInaute accro

- Messages: 1874
- Inscription: Dim Déc 17, 2006 21:08
en effet, je viens de tester chez moi et la solution est d'ajouter un ? pour éviter de transmettre les paramètres et de déplacer le stop pour qu'il ne soit pas pris avec le paramètre ref :
- Code: Tout sélectionner
RewriteCond %{QUERY_STRING} ^rub=ma_rubrique&module=liste&ref=(.*)$
RewriteRule ^repertoire/index\.php$ /mon-site.com/repertoire/ma-rubrique-%1.html? [R=301,L]
RewriteRule ^repertoire/ma-rubrique-(.*)\.html$ /mon-site.com/repertoire/index.php?rub=ma_rubrique&module=liste&stop&ref=$1 [L]
Chapeau bas maître webmasterlamogere ça marche impeccable
Merci pour ton aide.
Une autre petite question : je souhaite faire une redirection d'une ancienne url vers une nouvelle url mais qui n'est pas dans le même répertoire, autrement dit :
Ancienne url :
Nouvelle destination pour cette page :
Est-ce possible ?
Merci pour ton aide.
Une autre petite question : je souhaite faire une redirection d'une ancienne url vers une nouvelle url mais qui n'est pas dans le même répertoire, autrement dit :
Ancienne url :
- Code: Tout sélectionner
h**p://www.mon-site.com/repertoire/index.php?rub=ma_rubrique
Nouvelle destination pour cette page :
- Code: Tout sélectionner
h**p://www.mon-site.com/repertoire2/nouvelle-rubrique.html
Est-ce possible ?
39 messages • Page 2 sur 3 • 1, 2, 3
Formation recommandée sur ce thème :
Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Redirection (PHP, JavaScript, serveur...)
- Contrer une redirection 302 intempestive...
- Aperçu des différents types de redirection
- Référencement : gestion des redirections par Yahoo
- A propos des redirections "sauvages"
- A propos des redirections sauvages (302)
- Le détournement de page par redirection
- Comment faire des liens en dur dans son annuaire
- Conseils de netlinking pour Bing (par Microsoft)
- Comment lutter contre les mauvaises redirections 302 (temporaires)
Consultez la description détaillée des produits ou services de Google suivants : Google Images
- Tester la validité d'un lien
Cet outil vous permet de tester la validité d'un lien pour le référencement. Il vous indique la nature du lien (lien en dur, redirection bien gérée par les moteurs ou redirection mal gérée par les moteurs).
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités


le forum