SEO, BASH, PHP et plus si affinités

Comment rediriger des urls avec paramètres ?

Cet article sera très court, puisqu’il aura pour but de vous fournir une astuce pour l’url rewriting et plus particulièrement la ré-écriture d’url possédant des paramètres.
Les exemples proposés dans la suite de cet article seront à placer bien évidemment dans votre fichier .htaccess.

Exemples et mise en place de redirections

Admettons que l’index de google soit pollué de pages du type :
– http://www.example.com/index.php?option=blabla&value=bliblibli&name=chucknorris
Avec bien évidemment des variantes pour les valeurs option, value et name (sinon ca n’a aucun intérêt).
Toutes ces pages ne sont par exemple que des filtres permettant de présenter vos produits de différentes manières. Votre SEO adoré vous a fait remarquer (à juste titre d’ailleurs) que tout cela contribue fortement au duplicate content interne de votre site.
Après avoir corriger tout cela, vous aimeriez bien rediriger toutes ces vilaines url vers une seule : index.php (qui elle même renvoie vers la racine de votre site CQFD).

Voici donc un exemple permettant de réaliser cela :

# A vous d'ecrire une regle plus evoluee si vous souhaitez affiner la redirection
RewriteCond %{QUERY_STRING} ^option=.*$
RewriteRule ^(.*)$ /$1?%1 [L,R=301]
 
# Redirection de index.php vers la racine /
RewriteRule ^index.php	/ [R=301,L]

Lutter efficacement contre les PHPSESSID

Allons un peu plus loin, et utilisons les headers HTTP pour rediriger le fléau des moteurs : les sessions dans l’url !!!
Les sessions passées via l’url sont responsables d’un DC [Duplicate Content] Massif pour votre site. En effet, à chaque fois qu’un bot vient crawler votre site, la session a expiré, mais la page elle est identique.
Ce ne sont que quelques exemples, mais ils sont flagrants :

Sachez qu’il n’est pas difficile de remédier efficacement à ce problème. Un exemple parlant toujours mieux que de longues palabres, voici donc une solution :

# On desactive la transmission de session dans l'url
SetEnv SESSION_USE_TRANS_SID 0
SetEnv SESSION_USE_ONLY_COOKIES 1
 
# Et on redirige les PHPSESSID
RewriteCond %{QUERY_STRING} PHPSESSID=.*$
# Nous utilisons les Headers HTTP en verification supplementaire
# pour l'exemple prenons une url du style http://www.example.com/produit.php?id=42&PHPSESSID=eec4a9b35b6ff28753a7d2c98504ae72 
RewriteCond %{THE_REQUEST} !^[A-Z]+\ /produit\.php\?id=.*\ HTTP/
# Et on redirige tout ce beau monde sur la page sans la variable PHPSESSID
RewriteRule .* %{REQUEST_URI}? [R=301,L]

7 Réponses to “Comment rediriger des urls avec paramètres ?”

  1. Crunch dit :

    Merci pour cette astuce 😉

  2. Très bon tuto je m’en vais tester tout cela tout de suite.

  3. Merci pour l’astuce concernant les sessions, c’est vrai qu’on voit beaucoup de sites qui ont des sessions dans leur URL encore aujourd’hui.

  4. Rozzi dit :

    Merci beaucoup pour ce petit tutoriel. Je cherchais justement comment faire ça et google m’a rapatrié chez vous.

  5. julie dit :

    Excellent tuto, mais il se font de plue en plus rare les sites qui utilisent les sid dans les urls non ?

  6. Justement je cherchais un tuto pour réécrire des URLs avec des paramètres, j’ai vu ton twitt via SEO Campus !
    Je bookmark ton tuto ^^

  7. download dit :

    Très bon tutoriel , je vous remercie!

Trackbacks/Pingbacks

  1. Supprimer les parametres de session pour le référencement | KubX - [...] Comment re-ecrire des urls contenant des parametres ?. [...]

Laisser une réponse

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Je suis un gros footer de merde !! - Powered by le Presse mot