Url rewriting page=1

Petit nouveau ! | 8 Messages

26 juin 2012, 12:09

Bonjour,

J'essaye de faire une redirection 301 pour supprimer le paramètre page si il vaut 1.
En gros je veux http://www.monsite.com/?page=1 -> http://www.monsite.com/

J'ai réussi en faisant ça :

Code : Tout sélectionner

RewriteEngine On RewriteCond %{QUERY_STRING} page=1 RewriteRule ^(.*)$ /$1? [L,R=301]
Le problème est qu'avec ce code, il supprime tous les autres paramètres :
http://www.monsite.com/?page=1&sort=prix -> http://www.monsite.com/

Alors que je voudrais :
http://www.monsite.com/?page=1&sort=prix -> http://www.monsite.com/?sort=prix

Savez vous si il y a moyen de faire ça ? Peut être devrais-je faire une redirection 301 en php ? Merci :)

Mammouth du PHP | 790 Messages

27 juin 2012, 03:15

il te faut une 2eme règle de réécriture, celle que tuas déjà et qui fonctionne ne contient qu'un seul paramètre et l'autre 2...
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Petit nouveau ! | 8 Messages

27 juin 2012, 18:51

Salut,

Oui c'est vrai j'avais pas pensé à ça merci :) En cherchant un peu plus j'ai trouvé cette méthode qui marche :

Code : Tout sélectionner

RewriteCond %{THE_REQUEST} \?([^&\ ]+)&page=1 RewriteRule ^(.*)$ /$1?%1 [L,R=301]
Mais il reste un souci : ça ne fonctionne pas lorsque page est le seul paramètre dans l'url...

Petit nouveau ! | 9 Messages

28 juin 2012, 11:25

Juste une idée, que les autres participants pourront naturellement commenter:
Avoir un paramètre page=1 dans la requête ne me semble pas un problème. C'est juste embêtant pour le référencement, car Google détectera sur le site 2 pages différentes avec le même contenu, et divisera donc le page rank par 2 (pour chaque page).
Pour éviter ce problème, il suffit d'ajouter dans le header de la page l'adresse "canonical":
<link rel="canonical" href="http://monsite.com/requete_sans_page=1">
... à discuter, évidemment...