[RESOLU] Réécriture, redirection et R301

Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics

teog
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 5
Inscription: 22 Oct 2007

[RESOLU] Réécriture, redirection et R301

Message le Lun Oct 22, 2007 15:59

Bonjour,

Voilà mon soucis :
J'aimerai effectuer une réécriture d'adresse de pages qui sont déja référencées.
Le but étant que l'utilisateur voit article-XX.html dans sa barre d'adresse au lieu de article.php?id=XX. (en gardant mon fichier nommé article.php, normal :) )

donc j'ai (naïvement) fait ça :

Code: Tout sélectionner
#Reecriture
RewriteRule ^article-(.*).html$ article.php?id=$1

#Redirection
RewriteRule ^article.php?id=(.*)$ article-$1.html [R=301]


La redirection marche mais je ne sais pas si le R301 est correcte et donc si je ne perdrai pas mon référencement.

J'ai fait un test de mon entête et j'ai comme réponse un simple HTTP/1.0 200 OK , devrais-je avoir un HTTP/1.1 301 ???

aussi, y-a t-il un moyen pour que si l'on tape www.monsite.fr/article.php?id=12 on tombe sur cette meme page mais avec l'url = www.monsite.fr/article-12.html ?

Qu'en pensez vous ?
Dernière édition par teog le Mar Oct 23, 2007 12:18, édité 1 fois.


webmasterlamogere
WRInaute passionné
WRInaute passionné
 
Messages: 1874
Inscription: 17 Déc 2006

Message le Lun Oct 22, 2007 16:24

les paramètres ne marchent pas comme ca. il faut utiliser un truc du style :
Code: Tout sélectionner
RewriteCond %{QUERY_STRING} ^id=(.*)$
RewriteRule ^article\.php$ article-%1.html [R=301]

teog
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 5
Inscription: 22 Oct 2007

Message le Lun Oct 22, 2007 16:45

Déjà, Merci pour ta réponse ! :D
En effet il faut une condition,
le fait est que maintenant le R301 est pris en compte mais ne fait pas ce que je voudrais qu'elle fasse.
J'ai essayé ca :

Code: Tout sélectionner
#Reecriture
RewriteRule ^article-(.*).html$ article.php?id=$1

#Redirection
RewriteCond %{QUERY_STRING} ^id=(.*)$
RewriteRule ^article\.php$ http://www.monsite.fr/article-%1.html [R=301]


pour l'adresse www.monsite.fr/article-xx.html, je suis redirigé vers www.monsite.fr/article-xx.html?id=xx

même redirection si je tape www.monsite.fr/article.php?id=xx
et pour les deux un petit message : "Redirection de page incorrecte" ...


webmasterlamogere
WRInaute passionné
WRInaute passionné
 
Messages: 1874
Inscription: 17 Déc 2006

Message le Lun Oct 22, 2007 19:25

Je pense que quelque chose comme ca devrait marcher :
Code: Tout sélectionner
#Reecriture
RewriteRule ^article-(.*)\.html$ /article2.php?id=$1 [L]
#Redirection
RewriteCond %{QUERY_STRING} ^id=(.*)$
RewriteCond %{REQUEST_URI} !html$
RewriteRule ^article\.php$ /article-%1.html? [R=301,L]

En renommant article.php en article2.php ca marche (sinon ca boucle et je ne comprend pas pourquoi car il y a un [L]).

teog
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 5
Inscription: 22 Oct 2007

Message le Mar Oct 23, 2007 9:54

Je viens de tester ce bout de code et effectivement ca boucle.

La redirection marche au niveau de l'url, mais on arrive sur une page d'erreur "Redirection de page incorrecte"

La redirection a du coup beaucoup moins d'intéret si on renome article.php.

Tout comme toi je ne comprends pas pourquoi ca boucle par rapport au [L], mais il me semble que les conditions laissent passer article-xx.html , même si ça devrait s'arreter avant ... :?

Je continu de chercher de mon coté mais...
Moi pas bien comprendre...
Vous avoir idée ?

teog
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 5
Inscription: 22 Oct 2007

Message le Mar Oct 23, 2007 11:26

Je me fait doucement aux principes de réecriture ... donc en fait le problème est clair maintenant (pour moi)

j'ai refait mon code ... c'est la même chose, mais bon, je le met quand même :
Code: Tout sélectionner
#Reecriture
RewriteRule article-([0-9]+)\.html$ article.php?id=$1 [L]
#Redirection
RewriteCond %{REQUEST_URI} ^.*\.php$
RewriteCond %{QUERY_STRING} ^id=([0-9]+)$
RewriteRule ^article\.php$ http://www.monsite.fr/article-%1.html? [R=301]


Le probleme viens exclusivement du fait que la lecture du .htaccess ne s'arrete pas apres :

Code: Tout sélectionner
RewriteRule article-([0-9]+)\.html$ article.php?id=$1 [L]


Deplus, la condition :
Code: Tout sélectionner
RewriteCond %{REQUEST_URI} !html$
ou
Code: Tout sélectionner
RewriteCond %{REQUEST_URI} ^.*\.php$

est, je crois, toujours valide car après la récriture (peut importe l'url tapé), c'est la version en ".php" qui arrive à la condition. Je fais fausse route ?

Ca ne résous pas pour autant le problème, mais au moins c'est plus clair...


webmasterlamogere
WRInaute passionné
WRInaute passionné
 
Messages: 1874
Inscription: 17 Déc 2006

Message le Mar Oct 23, 2007 12:04

Je ne trouve pas la solution. C'est un problème pour un pro du rewritting.

teog
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 5
Inscription: 22 Oct 2007

Message le Mar Oct 23, 2007 12:16

J'ai "bricolé" une solution ...
Comme on peux pas faire de compteur de boucle j'ai fait un marqueur qui dit "le lien est réécrit", voici donc le code qui marche :

Code: Tout sélectionner
#Reecriture
RewriteRule article-([0-9]+)\.html$ article.php5?id=$1&- [L]
#Redirection
RewriteCond %{QUERY_STRING} ^id=([0-9]+)$
RewriteRule ^article\.php5$ http://www.fundraisers.fr/test/article-%1\.html? [R=301]


J'ai rajouté &- juste avant le [L] ce qui fait que l'url rewrité ne répond plus la condition de redirection et ceci n'influx pas sur l'adresse de la page.

C'est pas très propre mais ça marche !!!

Merci en tout cas webmasterlamogere pour ton aide !

Je marque la discussion comme RESOLU, étant donné que ça marche.
Mais ce n'est pas une "vraie" solution à ce problème et vous pouvez d'ailleur toujours en proposers une !


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

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 :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités