Rewriting ok mais pas la redirection

  • Auteur de la discussion Auteur de la discussion mojo
  • Date de début Date de début
WRInaute discret
Hello,

Je viens de terminer de rewriter le script linker et je commence à me mélanger un peu les pinceaux... Tout fonctionne au niveau du rewrite, mais ça se complique maintenant que je tente de faire des redirect permanent pour éviter un éventuel duplicate content.

Par exemple, le code suivant fonctionne "à merveille" (enfin bon, tout est relatif) :

Code:
RewriteRule index-([0-9]+)-([0-9]+)\.html$ annuaire.php?cat=$1&page=$2 [L]

Et maintenant, concrètement, si je veux indiquer aux robots ayant déjà indexé la page annuaire.php?cat=$1&page=$2 qu'elle a été déplacée vers index-numerodecat-numerodepage.html je devrais faire un truc du style :

Code:
RedirectMatch permanent ^annuaire\.php?cat=([0-9]+)&page=([0-9]+)$ http://mondomaine/cequejeveux/index-$1-$2.html

C'est bien ça, non ?
Or, ça ne marche pas, mes variables ne sont pas transmises comme il faut. Par contre sans variables comme ci-dessous, ça fonctionne...
Code:
RedirectMatch 301 /index.php http://mondomaine/cequejeveux/index-0-1.html

J'ai l'impression de tourner en rond, une aide serait la bienvenue :cry:
 
WRInaute passionné
Le serveur ne peut pas traiter les variables passées en $_GET (&truc=muche).
Si tu veux rediriger, c'est dans le code php de ta page annuaire.php qu'il va falloir que tu vérifies si le request_uri se termine par ".html" et sinon, rediriger vers la bonne page .html
Bonjour la complication.
 
WRInaute discret
'lut,

Merci pour ta réponse.
Je viens de tester un truc dans le genre :


Code:
RewriteCond %{QUERY_STRING} ^cat=([0-9]+)$
RewriteRule annuaire.php http://domain/cequejeveux/index-%1-1.html? [R=permanent,L]

et... ça semble marcher impec !

Les pages annuaire.php?cat=xx sont renvoyées vers http://domain/annuaire/index-xx-1.html


Vous pensez que c'est une solution fiable pour ce genre de soucis ?
En tout cas, ça semble bien pratique à première vue 8)
 
WRInaute occasionnel
mojo a dit:
'lut,

Merci pour ta réponse.
Je viens de tester un truc dans le genre :


Code:
RewriteCond %{QUERY_STRING} ^cat=([0-9]+)$
RewriteRule annuaire.php http://domain/cequejeveux/index-%1-1.html? [R=permanent,L]

et... ça semble marcher impec !

Les pages annuaire.php?cat=xx sont renvoyées vers http://domain/annuaire/index-xx-1.html


Vous pensez que c'est une solution fiable pour ce genre de soucis ?
En tout cas, ça semble bien pratique à première vue 8)

Tu ne risques pas d'etre penalisé par Google? Il n'aime pas les redirections sauvages. En tout cas ca marche meme si je ne comprends pas ce que ca veut dire :roll:
 
WRInaute discret
Mondiani a dit:
Tu ne risques pas d'etre penalisé par Google? Il n'aime pas les redirections sauvages.

C'est un peu ce que je me demande... Etant donné que le site est récent et que très peu d'anciennes pages sont indexées (chez google en tout cas) je me demande s'il ne vaudrait pas mieux rerouter tout ça vers un 404...
 
WRInaute passionné
J'aurais mis R=301. Mais ça a l'air pas mal :)
Par contre ton [L] n'est pas logique, puisque tu vas réécrire l'url ensuite.
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut