Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] Redirection 301 et moteur significant

Posted by Arnall on 12/20/2008 10:37

Bonjour,

j'ai récemment transformé les URLs de mon site grâce au moteur significant. Tout fonctionne bien pas de souci de ce côté, néanmoins j'aimerai aujourd'hui que les anciens liens qui apparaissent sur d'autres sites ou qui sont référencés sur Google se transforment eux aussi en nouveau lien lorsque l'on clique dessus.

exemple:

ancien lien: index.php?id=xxx&module=article&action=article:lire

nouveau lien: /article/categorie/titre-id

la redirection de l'ancien vers le nouveau ne me semble pas faisable avec un simple .htaccess vu qu'il manque des infos comme le titre et la catégorie qu'il faut bien aller récupérer quelque part. Je me dis donc qu'il faudrait que je crée un module dédié à la redirection, le .htaccess prend l'ancien lien en entrée me redirige vers le module de redirection en récupérant l'id et le module se charge de reconstruire la nouvelle URL et d'y amener le lecteur.

Maintenant je ne suis pas sur de mon coup cela fait 2 redirections, 1 depuis le .htaccess puis 1 depuis le module, je ne sais pas si googlebot apprécie et je ne sais pas à quel endroit mettre une redirection 301 pour que Google référence correctement la page...

Si vous voyez une solution plus simple avec une seule redirection je suis preneur (faire une redirection conditionnelle directement dans le module article?).

  [Opened] Re: Redirection 301 et moteur significant

Reply #1 Posted by Arnall on 12/20/2008 12:18

Je me suis répondu tout seul en réalité :) Dans le contrôleur du module article :

 /* Redirection anciennes URLs */
 global $gJConfig;
 if ( $gJConfig->urlengine['engine'] == 'significant') {
			
   if ( (stripos(jUrl::getCurrentUrl(),'id=') !== FALSE ) ){			
   $rep = $this->getResponse('redirect');
   $rep->action = 'articles~article:lire@classic';
   $rep->params = array('id'=>$rArticle->id,'titre'=>$rArticle->titre,'rubrique'=>$rArticle->nom_rubrique,'soustitre'=>$rArticle->soustitre);
   $rep->setHttpStatus('301','Moved Permanently');
   return $rep;			
   }
 }

Ca à l'air de fonctionner correctement, si vous avez un moyen plus "propre" ou plus rapide que stripos() pour vérifier que l'URL est dans l'ancien format je suis à l'écoute.

  [Opened] Re: Redirection 301 et moteur significant

Reply #2 Posted by Arnall on 12/20/2008 12:36

Au passage en regardant l'API pourquoi getCurrentUrl() renvoie seulement _SERVER["REQUEST_URI"] :

 /index.php?module=blablabla 

si la variable _SERVER["REQUEST_URI"] existe et une URL plus complete (avec le host):

 http://www.monsite.com/index.php?module=blablabla 

si _SERVER["REQUEST_URI"] n'existe pas ...

  [Opened] Re: Redirection 301 et moteur significant

Reply #3 Posted by laurentj on 12/20/2008 18:52

Salut,

si vous avez un moyen plus "propre" ou plus rapide que stripos()

oui :

  if ( $this->param('id') !== null ) ) 
;-)
 
Page
  1. Re: Redirection 301 et moteur significant