Redirection de type 301

Nouveau WRInaute
J'ai posté hier pour la premiere fois, un message et un probleme qui a été résolu sur l'URL Rewriting.
Je revenais vers vous pour faire suite à ce post.

En effet, j'ai effectué un url rewriting de la maniere suivante, dans le htaccess :
Code:
RewriteRule ^FR-(.*)-Dj-(.*)$              Dj-Archive.php?artiste=$1&titre=$2 [L]

Avant mes pages avait donc la forme suivante :
Code:
http://www.actualites-electroniques.com/Dj-Archive.php?artiste=Daft%20Punk&titre=France

Ellles sont devenues plus simples et plus claires sour la forme :
Code:
http://www.actualites-electroniques.com/FR-Daft-Punk-Dj-France

Jusque là tout va bien, puisque ce dernier lien marche parfaitement et affiche le bon contenu. Tout mon site est maintenant formaté sous ce modèle.
Mais il se trouve que mes deux liens marchent. En effet, mes anciens liens marchent toujours, et font en quelque sortent doublon.

En fait, je voudrais que mes liens qui ont été référencés avec la forme initiale soient changés avec la nouvelle forme, tout en informant Google de ce changement.

La redirection de type 301 a t-elle un role à jouer ici, sachant que mes urls initiales marchent toujours?
Comment arriver à déférencer mes adresses url initiales et les remplacer par les nouvelles, tout en gardant les PR?

Envoyer un nouveau sitemap à Google n'est sans doute pas la seule solution, pour cela. (c'est la premiere idée qui m'etait venu à l'esprit)

Au final, j'aurais donc voulu savoir, comment bénéficier de la qualité de mes url initiales pour que cela soit rebasculer sur les nouvelles, tout en déférencant petit à petit les url de la forme : http://www.actualites-electroniques.com/Dj-Archive.php?artiste=Daft%20 ... tre=France en les remplacant par http://www.actualites-electroniques.com/FR-Daft-Punk-Dj-France

Merci d'avance de votre aide.
Si quelque chose doit etre éclairci n'hésitez pas à me demander.
 
Nouveau WRInaute
bonsoir,

dj aroy a dit:
La redirection de type 301 a t-elle un role à jouer ici

dj aroy a dit:
Au final, j'aurais donc voulu savoir, comment bénéficier de la qualité de mes url initiales pour que cela soit rebasculer sur les nouvelles, tout en déférencant petit à petit les url de la forme : http://www.actualites-electroniques.com/Dj-Archive.php?artiste=Daft%20 ... tre=France en les remplacant par http://www.actualites-electroniques.com/FR-Daft-Punk-Dj-France
oui, clairement!

ce type de redirection (301) est une "redirection permanente" d'une adresse vers une nouvelle.
cette redirection est transparente et redirige automatiquement l'ancienne url vers la nouvelle tout en gardant le bénéfice du référencement déjà effectué.

Code:
RewriteRule ^FR-(.*)-Dj-(.*)$ Dj-Archive.php?artiste=$1&titre=$2 [R=301,L]
pour le placement du flag last "[L]", je laisse les experts Apache s'exprimer.
 
Nouveau WRInaute
Merci de ce premier eclaircissement.

Plusieurs questions surgissent: peut on uniquement faire une modification des flag dans le htaccess.
Si oui quelle est-elle exactement? Doit-on réecrire d'abord R=301 puis le L ou l'inverse dans le crochet?

Sinon j'ai pu lire qu'il y a des "modifications" serveur à mettre en place comme le code php suivant:
Code:
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.nouveausite.com/");
exit;
?>

Que doit-on faire avec?
J'ai tenté de le mettre avant le doctype html public comme ceci:
Code:
<?php header("HTTP/1.1 301 Moved Permanently"); 
header("Location: http://www.actualites-electroniques.com/EN-<?php $artistetiret = str_replace(' ', '-', $donnees['artiste']); echo $artistetiret; ?>-Dj-<?php $titretiret = str_replace(' ', '-', $donnees['titre']); echo $titretiret; ?>");
exit; ?>

Mais je me retrouve avec un non affichage de page qui m'indique une erreur.

Que dois-je faire?
 
Nouveau WRInaute
Re-bonjour,

Voila apres quelques recherches personnelles j'ai trouvé de nouvelles infos mais qui ne fonctionnent toujours pas.
En effet, j'ai changé mon code .htaccess, qui est devenu pour la redirection:

Code:
# Règles de reroutage vers les URL rewritées
RewriteCond %{QUERY_STRING} ^artiste=(.*)&titre=(.*)$
RewriteRule ^EN-Dj-Archive.php$ http://www.actualites-electroniques.com/EN-%1-Dj-%2? [R=301,L]
# Règles de réécriture des URL en php
RewriteRule ^EN-(.*)-Dj-(.*)$  EN-Dj-Archive.php?artiste=$1&titre=$2 [L]

Ainsi j'ai vérifié mon code à l'aide du site suivant :
http://www.annuaire-info.com/outil-referencement/test-redirection/ conseillé sur WRI

La réponse pour un test de page est la suivante :

Ainsi je pensais que c'était ok.

Malheureusement, quand je rentre le lien suivant:
http://www.actualites-electroniques.com/EN-Blackstrobe-Dj-France, il y a un tres long temps d'attente pour afficher la page et on a l'impression que cela tourne dans le vide et rien ne s'affiche au final !

Et quand je rentre cette adresse : http://www.actualites-electroniques.com/EN-Dj-Archive.php?artiste=Blac ... tre=France je tombe sur une erreur 404.

Pourriez-vous m'éclairez car j'ai vraiment l'impression de tourner en rond.

Merci.

(PS: attention, ayant rechangé mon fichier .htaccess, les liens précédents marchent. Par contre avec le htaccess ecrit précédemment ce n'est pas le cas). Je voudrais donc savoir ou réside l'erreur.
 
Nouveau WRInaute
De retour,

Apres epluchage de plusieur posts sur le forum et ailleurs, je suis arrivé à la déduction que pour eviter le bouclage il fallait créer un faux parametre supplémentaire.

Je me suis donc inspiré du post suivant, apparemment tres bien résolu sur le forum WRI:
https://www.webrankinfo.com/forum/t/rewritecond-et-rewriterule-resolu.96256/

J'ai donc adapaté mon code en conséquence pour avoir le suivant:
Code:
RewriteRule ^EN-(.*)-Dj-(.*)$ /EN-Dj-Archive.php?artiste=$1&titre=$2&rewrite [L]
RewriteCond %{QUERY_STRING} ^artiste=(.*)&titre=(.*)$
RewriteRule EN-Dj-Archive\.php /EN-%1-Dj-%2? [L,R=301]

En théorie cela marche à l'adresse suivante, mais en pratique non:
http://www.annuaire-info.com/outil-referencement/test-redirection/ ou ici http://web-sniffer.net/

Malheureusement cela ne marche toujours pas.
Je commence a despérer, d'ou ce nouvel appel à votre aide.

Ou est l'erreur?

Encore merci.
 
Nouveau WRInaute
Re: Redirection de type 301 (RESOLU)

Hello à tous.

Le probleme a été résolu sur un autre forum et j'en suis complètement bluffé.

Pour mieux identifier le problème, il fallait s'aider de cela ou l'on voyait une boucle sur le mot rewrite.
http://www.webmaster-hub.com/pages/outils/headers

Ensuite la correction du code correspond au suivant qui maitenant est effectif:
Code:
RewriteRule ^EN-(.*)-Dj-(.*)$ /EN-Dj-Archive.php?artiste=$1&titre=$2&rewrite [L]
RewriteCond %{QUERY_STRING} ^artiste=(.*)&titre=([^&]*)$
RewriteRule EN-Dj-Archive\.php /EN-%1-Dj-%2? [L,R=301]

La modification se situe sur la deuxieme ligne pour la variable titre dont la parenthese est devenue : ([^&]*) et non plus (.*)
Le code marche donc parfaitement et la redirection s'effectue dans de tres bonne condition.

Encore merci de votre aide tout de meme.
 
Discussions similaires
Haut