Ancienne URL qui revient après le Rewriting

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

sunnmagic
WRInaute impliqué
WRInaute impliqué
 
Messages: 274
Inscription: Mar Juin 14, 2005 14:12

Ancienne URL qui revient après le Rewriting

Message le Mar Fév 27, 2007 10:08

Bonjour à tous, j'ai un petit souci.

Je met en place l'URL Rewriting comme je le fais d'habitude. Mais cette fois-ci, cela ne fonctionne pas correctement sur un site précis.

1 - L'URL d'une page rewritée renvoit bien vers l'ancienne page, mais c'est l'url de l'ancienne page qui revient alors dans la barre d'adresse du navigateur...

2 - Second point, quelle est la meilleure méthode pour redirection 301 d'une page précise ? A la fin de la condition de réécriture, j'ai vu plusieurs solutions sur le forum, et je m'y perd avec les QSA, les L, les R=301, etc...


Code: Tout sélectionner
Options +FollowSymlinks
Options -Multiviews
RewriteEngine on

RewriteRule nouvelle-page.html  /ancienne-page.php [R=301]



Merci d'avance !


Leonick
WRInaute accro
WRInaute accro
 
Messages: 12388
Inscription: Dim Aoû 08, 2004 20:24

Message le Mar Fév 27, 2007 11:46

le R dans la réécriture veut dire qu'il faut afficher le résultat de cette règle : donc l'ancienne url :cry:


nickargall
WRInaute accro
WRInaute accro
 
Messages: 5329
Inscription: Lun Juin 13, 2005 14:13

Message le Mar Fév 27, 2007 11:53

L'ajout de [R=301] provoque ce souci, l'URL réécrite est bien interprétée mais provoque l'appel et l'affichage de l'URL non réécrite.

Je ne connais pas bien la solution, faut-il dans ce cas doubler chaque règle de réécriture par un redirect match ? Question aux experts


Leonick
WRInaute accro
WRInaute accro
 
Messages: 12388
Inscription: Dim Aoû 08, 2004 20:24

Message le Mar Fév 27, 2007 11:56

il suffit juste de ne pas mettre [R], ou [R=301] dans la règle. Elle s'appliquera et gardera l'url de base dans la barre du navigateur


nickargall
WRInaute accro
WRInaute accro
 
Messages: 5329
Inscription: Lun Juin 13, 2005 14:13

Message le Mar Fév 27, 2007 12:14

Oui, mais la question vient - je pense - du besoin de faire une redirection permanente des anciennes URL indexées par les moteurs vers les URL réécrites. A doubler d'un redirect match alors ?


Leonick
WRInaute accro
WRInaute accro
 
Messages: 12388
Inscription: Dim Aoû 08, 2004 20:24

Message le Mar Fév 27, 2007 13:06

effectivement, je n'avais pas tilté. Encore une réécriture effectuée à l'envers.
Si l'url a été modifié, ce n'est pas nouvelle -> ancienne qu'il faut réécrire, mais ancienne -> nouvelle


nickargall
WRInaute accro
WRInaute accro
 
Messages: 5329
Inscription: Lun Juin 13, 2005 14:13

Message le Mar Fév 27, 2007 13:21

Euh non en fait , je ne pense pas, j'ai le même type de cas de figure

j'ai des
page.php?bla=1251&bli=1235
indexées
Hop je veux réécrire en
page-1251-1235.html
pas de souci
mais quand je veux mettre en place une redirection des anciennes URLs vers les nouvelles (pour les pages non réécrites indexées par les moteurs par exemple)
ben j'essaie le [R=301]
mais ça provoque l'affichage de l'URL non réécrite dans la barre d'adresse, même si le lien pointe vers l'URL réécrite

Donc je me dis que je dois coupler la réécriture d'url avec un redirectmatch

sunnmagic
WRInaute impliqué
WRInaute impliqué
 
Messages: 274
Inscription: Mar Juin 14, 2005 14:12

Message le Mer Fév 28, 2007 10:42

Si l'on enlève de [R=301], comment faire comprendre aux moteurs de recherche que l'url a définitivement changée ?


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3338
Inscription: Mar Nov 16, 2004 18:27

Message le Mer Fév 28, 2007 18:52

nickargall a écrit:ben j'essaie le [R=301]
mais ça provoque l'affichage de l'URL non réécrite dans la barre d'adresse, même si le lien pointe vers l'URL réécrite

Donc je me dis que je dois coupler la réécriture d'url avec un redirectmatch


Ca fait bidouille, contact ton hebergeur et demande lui pourquoi [R=301] provoque une coquille.


nickargall
WRInaute accro
WRInaute accro
 
Messages: 5329
Inscription: Lun Juin 13, 2005 14:13

Message le Mer Fév 28, 2007 19:06

Ben c'est Sivit mon hébergeur


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3338
Inscription: Mar Nov 16, 2004 18:27

Message le Mer Fév 28, 2007 19:30

nickargall a écrit:Ben c'est Sivit mon hébergeur


:idea: si tu as 5 minutes, host tes pages concernés chez un autre hebergeur et regarde si ca tourne.


nickargall
WRInaute accro
WRInaute accro
 
Messages: 5329
Inscription: Lun Juin 13, 2005 14:13

Message le Mer Fév 28, 2007 20:04

à l'occasion .. quoique là j'ai pas vraiment besoin de le faire, mais bon je verrai dans l'avenir :)


Patrice A.
Modérateur
Modérateur
 
Messages: 2413
Inscription: Ven Fév 11, 2005 19:36

Message le Jeu Mar 01, 2007 2:36

Vous êtes complètement embrouillés sur ce topic :)

Quand on écrit
RewriteRule nouvellepage.html anciennepage.php?param=valeur
Ca permet d'accéder au contenu de l'ancienne page, avec l'adresse de la nouvelle. Ok ?

Quand on écrit
RewriteRule nouvellepage.html anciennepage.php?param=valeur [R]
R=301 ou R (sa valeur par défaut est justement 301) veut dire : ok, mon cher serveur apache, fais une redirection PERMANENTE ET DEFINITIVE de nouvellepage.html vers anciennepage.php?param=valeur.
Ok ?
Donc quand le navigateur demande à Apache nouvellepage.html, Apache dit "euh attends, la page est déplacée définitivement, voilà sa nouvelle adresse : anciennepage.php?param=valeur.
Donc mon navigateur me répète : "mon vieux, la page a été déplacée, je change l'url dans la barre d'adresse pour que tu gardes en tête que maintenant, c'est ANCIENNEPAGE.PHP."
Ok ?

Si je veux rediriger anciennepage.php?param=valeur vers nouvellepage.html alors LA SEULE SOLUTION est de changer le code PHP de anciennepage.php pour lui dire "vérifie si on accède à tes infos depuis la bonne url.. sinon, redirige."
Ok ?


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3338
Inscription: Mar Nov 16, 2004 18:27

Message le Jeu Mar 01, 2007 22:41

ok, donc juste un header et ca suffit, dans le genre :

Code: Tout sélectionner
$url = "$_SERVER[REQUEST_URI]";
if($url=='/anciennepage.php?param=valeur')


header("HTTP/1.1 301 Moved Permanently"); 
header("Location: http://".$_SERVER['HTTP_HOST']."/nouvellepage.html ");
}

Edité par Dj_Apx pour sauver le topic d'un bug :wink:


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3338
Inscription: Mar Nov 16, 2004 18:27

Message le Jeu Mar 01, 2007 22:41

ok, donc juste un header et ca suffit, dans le genre :

Code: Tout sélectionner
$url = "$_SERVER[REQUEST_URI]";
if($url=='/anciennepage.php?param=valeur')


header("HTTP/1.1 301 Moved Permanently"); 
header("Location: http://".$_SERVER['HTTP_HOST']."/nouvellepage.html ");

Ancienne URL qui revient après le Rewriting

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