Redirections 301 Joomla 1.5

dangee

Nouveau WRInaute
Bonjour à tous,

Je sais que la question des redirections à déjà été abordées plus d'une fois sur le forum, mais je ne trouve pas de réponse à ce cas précis.

J'ai un site joomla 1.5.8 (oui je sais, il faudrait que je fasse la maj ;)) en activité depuis quelques temps, mais sans l'url rewriting d'activée.

J'ai donc renommé le htaccess.txt en .htaccess pour l'activation et configuré joomla comme il faut.
=> Jusque là pas de problème, mes url sont biens réécrites.

J'en ai profité pour faire la redirection non-www vers www avec
Code:
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
=>pas de pb non plus.

Là où je bloque c'est pour faire les redirections 301 des anciennes url non réécrites vers les nouvelles réécrites pour indiquer à google (et autres) le changement.

exemple: comment rediriger ?
http://www.mondomaine.com/index.php?option=com_content&view=article&id=35&Itemid=29
vers
http://www.mondomaine.com/mentions-legales.html

J'ai essayé
Code:
RedirectPermanent /index.php?option=com_content&view=article&id=35&Itemid=29 http://www.mondomaine.com/mentions-legales.html
=> marche pas
Code:
RewrituRule ^index.php?option=com_content&view=article&id=35&Itemid=29 http://www.mondomaine.com/mentions-legales.html$ [R=301,L]
=> marche pas

Auriez-vous une idée ?

Merci d'avance.
 

loran750

WRInaute passionné
salut

c'est automatique. Pas besoin de faire des 301.

tu peux en profiter pour utiliser sh404SEF en version J1.5 pour mieux maitriser ces urls.

cdt
 

dangee

Nouveau WRInaute
loran750 a dit:
c'est automatique. Pas besoin de faire des 301.
Ah bon !! Comment google va savoir que l'url non réécrite a été modifiée ??

tu peux en profiter pour utiliser sh404SEF en version J1.5 pour mieux maitriser ces urls.
C'est ce que je voulais, mais pas sûr de vouloir débourser 40$...

Merci en tout cas :wink:
 

salva

WRInaute accro
A placer en tête du fichier index.php du template utilisé et pour chaque url à rediriger.
Code:
if ($_SERVER['REQUEST_URI'] == "/index.php?option=com_content&view=article&id=35&Itemid=29") {
  header("HTTP/1.1 301 Moved Permanently");
  header("Location: http://www.mondomaine.com/mentions-legales.html");
  exit();
}
Si tu as plusieurs urls à rediriger, tu peux aussi les lister toutes dans un même fichier que tu incluras. Toujour en tête de l'index.php du template actif.
Code:
<?php include('fichier_urls.php'); ?>
 

UsagiYojimbo

WRInaute accro
Pour le coup, si tu en as plusieurs, une structure en switch / case risque de s'imposer, plutôt que de faire 40 000 if de suite.
 

dangee

Nouveau WRInaute
Je dois en avoir une 100aine donc la suite de if, ça me va :).

Merci beaucoup pour vos réponses. Je mets ça en place et je vous tiens au courant du résultat.
 

UsagiYojimbo

WRInaute accro
dangee a dit:
Je dois en avoir une 100aine donc la suite de if, ça me va :).

C'est justement totalement pas optimisé de procéder ainsi. La totalité des if sont exécutés à chaque fois. Un switch / case ordonné par poids des url d'origine permettrait de carrément alléger la chose.
 

UsagiYojimbo

WRInaute accro
Code:
switch ($_SERVER['REQUEST_URI'])
{
     case "/index.php?option=com_content&view=article&id=35&Itemid=29":
          header("HTTP/1.1 301 Moved Permanently");
          header("Location: http://www.mondomaine.com/mentions-legales.html");
          exit();
     break;
}

En triant les case en fonction du trafic des url (de celles qui font le plus de trafic à celles qui en font le moins), et en répétant le bloc

Code:
case :
break;

pour chaque url à rediriger.
 

Discussions similaires

Haut