Redirection permanente des pages d'un domaine [R=301]

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


Soprano2000
WRInaute discret
WRInaute discret
 
Messages: 56
Inscription: 5 Mar 2006

Redirection permanente des pages d'un domaine [R=301]

Message le Sam Juin 14, 2008 15:37

Bonjour à tous,

Voici un petit problème a résoudre :

J'ai procédé à une modification du nom de mes pages d'un site.

Ancien nom au format : Article-120.html
Le nouveau nom est maintenant : Article-titre-article-120.html

Ces pages sont rewrité depuis :

initialement j'avais Article.php?id=$1
je l'ai remplacé par Article.php?id=$1&titre=$2

Je voudrais faire une redirection permanente pour indiquer le nouveau format de la page
Comment peut on faire ça proprement sans indiquer la redirection pour chaque page.

Merci par avance pour votre aide.


ltressens
WRInaute impliqué
WRInaute impliqué
 
Messages: 551
Inscription: 2 Avr 2004

Message le Sam Juin 14, 2008 16:09

Dans article.php, pseudo code :

Code: Tout sélectionner
$id = $_GET['id'];
if (!isset($_GET['titre']))
{
   // Chercher le bon titre (en base de données par exemple)
   $titre = "abcdef";

   header('HTTP/1.1 301 Moved Permanently');
   header('Location: Article-'.$titre.'-'.$id.'.html');
   exit;
}
$titre = $_GET['titre'];

// suite du code avec $id et $titre présents.


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3835
Inscription: 14 Sep 2006

Message le Sam Juin 14, 2008 16:16

Je dirais même:

Dans article.php, pseudo code :

Code: Tout sélectionner
$id = $_GET['id'];
if (!isset($_GET['titre']))
{
   // Chercher le bon titre (en base de données par exemple)
   $titre = "abcdef";

   if($_SERVER['REQUEST_URI'] != 'Article-'.$titre.'-'.$id.'.html')
   {
      header('HTTP/1.1 301 Moved Permanently');
      header('Location: Article-'.$titre.'-'.$id.'.html');
      exit;
   }
}
$titre = $_GET['titre'];

// suite du code avec $id et $titre présents.



Comme ça tu évites des redirections même si c'est déjà la bonne url ^^


Soprano2000
WRInaute discret
WRInaute discret
 
Messages: 56
Inscription: 5 Mar 2006

Message le Sam Juin 14, 2008 16:19

Je ne suis pas certain que cela corresponde à mon besoin car
le but est de récupérer les accès par les liens présents dans les moteurs sous la forme :
Article-123.html et non Article-123.php.

Actuellement les pages du type Article-123.html n'existent plus. Le seul élément interesant est de récupérer l'id de l'article mais après la seule chose qu'il me semble possible c'est ça :

Code: Tout sélectionner
RewriteRule ^Article-(.*).html$   /article.php?id=$1  [R=301]


Mais c'est pas propre et sans interêt.


Soprano2000
WRInaute discret
WRInaute discret
 
Messages: 56
Inscription: 5 Mar 2006

Message le Dim Juin 15, 2008 9:00

Après une longue soirée de tentatives infructueuses, je me demande si il ne serait pas plus simple de forcer les moteurs de recherche à revisiter totalement le site.

Y a t'il un moyen ...

Avez vous une idée :?: .... :idea:


Marie-Aude
Modérateur
Modérateur
 
Messages: 11900
Inscription: 5 Juin 2006

Message le Dim Juin 15, 2008 9:18

La solution que t'ont données Itresens et YoyoS est celle qui correspond à ton besoin.

Dans la page source, on vérifie l'url par laquelle on est arrivé, et si cette url correspond à l'ancienne version, elle indique une redirection permanente vers la nouvelle url.

Revisiter le site ne changera rien à ton vrai problème, qui est de récupérer les backlinks existants, et d'éviter des erreurs 404 là dessus.

Le plus simple pour faire revisiter est de resoumettre ton plan de site.


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3835
Inscription: 14 Sep 2006

Message le Dim Juin 15, 2008 10:34

Moi je ne supprimerais pas mes anciennes règles d'écriture si j'étais toi, j'en créerais seulement des nouvelles pour rediriger tout cela gentillement vers les nouvelles.

Vap
WRInaute passionné
WRInaute passionné
 
Messages: 1090
Inscription: 17 Juin 2007

Message le Dim Juin 15, 2008 10:43

Le code PHP de yoyos fait une bonne partie du boulot.

Il faut en plus les deux règles suivantes:

Code: Tout sélectionner
RewriteRule ^Article-(.*)-(.*)\.html$   /article.php?titre=$1&id=$2  [L]
RewriteRule ^Article-(.*).html$   /article.php?id=$1  [R=301]


La première réalise l'affichage de tes nouvelles adresse html. La deuxième fait une redirection des anciennes adresses html vers la page PHP dont le code fait a nouveau une redirection vers les nouvelles pages html.


Soprano2000
WRInaute discret
WRInaute discret
 
Messages: 56
Inscription: 5 Mar 2006

Message le Dim Juin 15, 2008 11:08

Ah je comprends mieux, effectivement, j'avais retiré l'ancienne règle ça ne pouvais plus marcher.

Merci, je vais mettre tout cela en ligne et je vous dirais ...


Soprano2000
WRInaute discret
WRInaute discret
 
Messages: 56
Inscription: 5 Mar 2006

Message le Dim Juin 15, 2008 11:56

Vraiment très propre cette méthode.

Merci pour votre collaboration ça marche à merveille. Je viens même de communiquer cette astuce qui mérite d'être connue à un ami qui a vécu l'enfer de la chute dans les classements à cause de cela.

Bon Dimanche à tous,


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 :

Consultez la description détaillée des produits ou services de Google suivants : Google Apps Edition Premium

  • Test 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).
  • Liste de sous-domaines
    Cet outil vous permet de trouver la liste des sous-domaines (indexés) d'un site.
  • Analyseur d'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