|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
sunnmagic WRInaute impliqué

Inscrit le: 14 Juin 2005 Messages: 253
|
Posté le : Mar Fév 27, 2007 11:08 Sujet du message: Ancienne URL qui revient après le Rewriting |
|
|
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: |
Options +FollowSymlinks
Options -Multiviews
RewriteEngine on
RewriteRule nouvelle-page.html /ancienne-page.php [R=301] |
Merci d'avance ! |
|
| |
|
 |
Leonick WRInaute accro

Inscrit le: 08 Aoû 2004 Messages: 8641 Localisation: Val de Marne
|
Posté le : Mar Fév 27, 2007 12:46 Sujet du message: Ancienne URL qui revient après le Rewriting |
|
|
le R dans la réécriture veut dire qu'il faut afficher le résultat de cette règle : donc l'ancienne url  |
|
| |
|
 |
nickargall WRInaute accro

Inscrit le: 13 Juin 2005 Messages: 3517 Localisation: Exilé au Groland à cause de Joe Dalton
|
Posté le : Mar Fév 27, 2007 12:53 Sujet du message: Ancienne URL qui revient après le Rewriting |
|
|
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

Inscrit le: 08 Aoû 2004 Messages: 8641 Localisation: Val de Marne
|
Posté le : Mar Fév 27, 2007 12:56 Sujet du message: Ancienne URL qui revient après le Rewriting |
|
|
| 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

Inscrit le: 13 Juin 2005 Messages: 3517 Localisation: Exilé au Groland à cause de Joe Dalton
|
Posté le : Mar Fév 27, 2007 13:14 Sujet du message: Ancienne URL qui revient après le Rewriting |
|
|
| 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

Inscrit le: 08 Aoû 2004 Messages: 8641 Localisation: Val de Marne
|
Posté le : Mar Fév 27, 2007 14:06 Sujet du message: Ancienne URL qui revient après le Rewriting |
|
|
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

Inscrit le: 13 Juin 2005 Messages: 3517 Localisation: Exilé au Groland à cause de Joe Dalton
|
Posté le : Mar Fév 27, 2007 14:21 Sujet du message: Ancienne URL qui revient après le Rewriting |
|
|
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é

Inscrit le: 14 Juin 2005 Messages: 253
|
Posté le : Mer Fév 28, 2007 11:42 Sujet du message: Ancienne URL qui revient après le Rewriting |
|
|
| 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

Inscrit le: 16 Nov 2004 Messages: 2869 Localisation: Bangalore +3h30
|
Posté le : Mer Fév 28, 2007 19:52 Sujet du message: Ancienne URL qui revient après le Rewriting |
|
|
| 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

Inscrit le: 13 Juin 2005 Messages: 3517 Localisation: Exilé au Groland à cause de Joe Dalton
|
Posté le : Mer Fév 28, 2007 20:06 Sujet du message: Ancienne URL qui revient après le Rewriting |
|
|
| Ben c'est Sivit mon hébergeur |
|
| |
|
 |
KOogar WRInaute accro

Inscrit le: 16 Nov 2004 Messages: 2869 Localisation: Bangalore +3h30
|
Posté le : Mer Fév 28, 2007 20:30 Sujet du message: Ancienne URL qui revient après le Rewriting |
|
|
| nickargall a écrit: |
| Ben c'est Sivit mon hébergeur |
si tu as 5 minutes, host tes pages concernés chez un autre hebergeur et regarde si ca tourne. |
|
| |
|
 |
nickargall WRInaute accro

Inscrit le: 13 Juin 2005 Messages: 3517 Localisation: Exilé au Groland à cause de Joe Dalton
|
Posté le : Mer Fév 28, 2007 21:04 Sujet du message: Ancienne URL qui revient après le Rewriting |
|
|
à l'occasion .. quoique là j'ai pas vraiment besoin de le faire, mais bon je verrai dans l'avenir  |
|
| |
|
 |
Patrice A. Modérateur

Inscrit le: 11 Fév 2005 Messages: 2397 Localisation: Nantes
|
Posté le : Jeu Mar 01, 2007 3:36 Sujet du message: Ancienne URL qui revient après le Rewriting |
|
|
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

Inscrit le: 16 Nov 2004 Messages: 2869 Localisation: Bangalore +3h30
|
Posté le : Jeu Mar 01, 2007 23:41 Sujet du message: Ancienne URL qui revient après le Rewriting |
|
|
ok, donc juste un header et ca suffit, dans le genre :
| Code: |
$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 |
|
| |
|
 |
KOogar WRInaute accro

Inscrit le: 16 Nov 2004 Messages: 2869 Localisation: Bangalore +3h30
|
Posté le : Jeu Mar 01, 2007 23:41 Sujet du message: Ancienne URL qui revient après le Rewriting |
|
|
ok, donc juste un header et ca suffit, dans le genre :
| Code: |
$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 ");
} |
|
|
| |
|
 |
| |
|
|