Problème classique de réécriture et de redirection 301
5 messages
• Page 1 sur 1
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
-

Chewee - WRInaute discret

- Messages: 245
- Inscription: 16 Fév 2005
Problème classique de réécriture et de redirection 301
Bonjour tout le monde,
J'ai un petit problème de réécriture d'URLs à vous soumettre.
Je pense que mon cas est hyper classique donc ça devrait aller...
J'ai volontairement schematiser la structure de mes URL pour l'exemple.
Voilà...
Jusque là, j'ai un certain nombre (voire un nombre certain) de pages indexées sur Google avec des URL du type "page.php?param1=5¶m2=9"
Je voudrais que désormais ces pages soient accessible via "page-5-9.html" (et que ce soit cette URL qui apparaisse dans la barre d'addresse)
J'ai donc fais la réécriture suivante :
RewriteRule ^page-([0-9]+)-([0-9]+)\.html$ http://www.example.com/page.php?param1=$1¶m2=$2 [L]
Ca va faire le boulot, pas de soucis de ce côté là à priori.
Mon soucis est qu'évidemment, je ne veux pas perdre le référencement de ces pages avec les anciennes URL... Donc je pense à un système de redirection 301 et c'est là que ça se complique dans mon cerveau.
Si je fais un truc du genre :
RewriteRule ^page-([0-9]+)-([0-9]+)\.html$ http://www.example.com/page.php?param1=$1¶m2=$2 [R=301,L]
J'ai l'impression que la redirection qui est effectuée est l'inverse de celle que je voudrais...
En gros, ça dit que c'est page.php qui est la nouvelle adresse de page-xx-yy.html non ?
Bref... Comment feriez-vous exactement ? Suis-je dans le vrai ?
(Je vous avais dis que c'était très bateau comme cas...)
Merci d'avance...
J'ai un petit problème de réécriture d'URLs à vous soumettre.
Je pense que mon cas est hyper classique donc ça devrait aller...
J'ai volontairement schematiser la structure de mes URL pour l'exemple.
Voilà...
Jusque là, j'ai un certain nombre (voire un nombre certain) de pages indexées sur Google avec des URL du type "page.php?param1=5¶m2=9"
Je voudrais que désormais ces pages soient accessible via "page-5-9.html" (et que ce soit cette URL qui apparaisse dans la barre d'addresse)
J'ai donc fais la réécriture suivante :
RewriteRule ^page-([0-9]+)-([0-9]+)\.html$ http://www.example.com/page.php?param1=$1¶m2=$2 [L]
Ca va faire le boulot, pas de soucis de ce côté là à priori.
Mon soucis est qu'évidemment, je ne veux pas perdre le référencement de ces pages avec les anciennes URL... Donc je pense à un système de redirection 301 et c'est là que ça se complique dans mon cerveau.
Si je fais un truc du genre :
RewriteRule ^page-([0-9]+)-([0-9]+)\.html$ http://www.example.com/page.php?param1=$1¶m2=$2 [R=301,L]
J'ai l'impression que la redirection qui est effectuée est l'inverse de celle que je voudrais...
En gros, ça dit que c'est page.php qui est la nouvelle adresse de page-xx-yy.html non ?
Bref... Comment feriez-vous exactement ? Suis-je dans le vrai ?
(Je vous avais dis que c'était très bateau comme cas...)
Merci d'avance...
-

Blount - WRInaute occasionnel

- Messages: 430
- Inscription: 18 Nov 2010
Re: Problème classique de réécriture et de redirection 301
On s'occupe par le commencement.
Tu veux bouger une adresse vers une autre avec une redirection permanente :
« %1 » et « %2 » récupère les paramètres de RewriteCond.
Ensuite, il faut spécifier que la nouvelle adresse soit réécriture à l'ancienne pour garder le même fonctionnement qu’auparavant :
Ce qui donne pour terminer :
En théorie, ce devrait passer. En pratique, tu auras peut-être une erreur 500.
Tu veux bouger une adresse vers une autre avec une redirection permanente :
- Code: Tout sélectionner
RewriteCond %{QUERY_STRING} ^param1=([0-9]+)¶m2=([0-9]+)$
RewriteRule ^page\.php$ http://www.example.com/page-%1-%2.html [L,R=301]
« %1 » et « %2 » récupère les paramètres de RewriteCond.
Ensuite, il faut spécifier que la nouvelle adresse soit réécriture à l'ancienne pour garder le même fonctionnement qu’auparavant :
- Code: Tout sélectionner
RewriteRule ^page-([0-9]+)-([0-9]+)\.html$ page.php?param1=$1¶m2=$2 [L]
Ce qui donne pour terminer :
- Code: Tout sélectionner
RewriteCond %{QUERY_STRING} ^param1=([0-9]+)¶m2=([0-9]+)$
RewriteRule ^page\.php$ http://www.example.com/page-%1-%2.html [L,R=301]
RewriteRule ^page-([0-9]+)-([0-9]+)\.html$ page.php?param1=$1¶m2=$2 [L]
En théorie, ce devrait passer. En pratique, tu auras peut-être une erreur 500.
-

Chewee - WRInaute discret

- Messages: 245
- Inscription: 16 Fév 2005
Re: Problème classique de réécriture et de redirection 301
- Code: Tout sélectionner
RewriteCond %{QUERY_STRING} ^param1=([0-9]+)¶m2=([0-9]+)$
RewriteRule ^page\.php$ http://www.example.com/page-%1-%2.html [L,R=301]
RewriteRule ^page-([0-9]+)-([0-9]+)\.html$ page.php?param1=$1¶m2=$2 [L]
OK merci je pense avoir compris.
Il y a juste un truc que je ne comprends pas trop.
Le [L] sert bien à lui dire d’arrêter d'analyser les instructions suivantes dans le .htaccess ?
Dans ce cas, après le 1er RewriteRule, comment le serveur sait où trouver la page correspondant à page-%1-%2.html ?
L'instruction suivante est quand même exécutée ?
-

Blount - WRInaute occasionnel

- Messages: 430
- Inscription: 18 Nov 2010
Re: Problème classique de réécriture et de redirection 301
En fait, la première instruction force le navigateur à recharger une nouvelle page.
Ce qui signifie que la requête ne sera plus la même. Pour la seconde requête, la première règle ne sera pas validée, ce sera donc la seconde qui sera étudiée.
Ce qui signifie que la requête ne sera plus la même. Pour la seconde requête, la première règle ne sera pas validée, ce sera donc la seconde qui sera étudiée.
5 messages
• Page 1 sur 1
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 :
- Réécriture d'URL et Redirection 301
- Redirection 301 et réécriture d'url récalcitrantes
- Après une réécriture et redirection 301
- Redirection 301 pour changement de réécriture d'URL
- Problème de code pour redirection 301 (problème complexe?)
- htaccess ou redirection classique?
- Redirection 301 probleme
- Problème redirection 301?
- Problème de redirection 301
- Question classique sur la redirection
- Tester le type de redirection
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). - Analyse de l'entête HTTP
Cet outil vous permet de connaître le code HTTP renvoyé par le serveur pour une page donnée.
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
