Page 1 of 1

Changement de l'alias de la page et redirection automatique

Posted: Mon Oct 12, 2009 1:57 pm
by lb01
Bonjour,

Je souhaiterais pouvoir changer l'URL de mes pages sans perdre mon référencement.

Je sais que je pourrais le faire avec un fichier .htaccess ou avec le module Moved Page cependant ce serait génial si 4a pouvait être dynamique.

Un petit exemple pour être plus clair :
J'ai une page http://www.monsite.com/fr/mapage.htm que je souhaite renommer en http://www.monsite.com/fr/ma_page.htm
Je vais donc simplement modifier le champ "alias" de celle-ci. Cependant une fois la modification effectuée, la page ne sera plus que accessible à l'adresse http://www.monsite.com/fr/ma_page.htm, la page http://www.monsite.com/fr/mapage.htm retournera une erreur 404.

Existerait-il quelque chose (module, tag utilisateur ou modification dans le code du CMS) permettant de faire ceci ?

Mon CMS tourne actuellement sous CMS Made Simple 1.2.3 (il faudrait que j'envisage une mise à jour, mais c'est un site pas mal compliqué en 10 langues dont du chinois et de l'arabe...).

Merci d'avance de votre aide.

Je vous souhaite une excellente fin d'après-midi.

Meilleures salutations
Leeroy Brun

Re: Changement de l'alias de la page et redirection automatique

Posted: Thu Oct 15, 2009 8:38 am
by lb01
Bonjour,

Pour ceux que ça intéresse, voici ma solution :
Allez dans "Administration du site -> Paramètres Globaux"
Activez ensuite l'option "Activation du message 404 personnalisé :" et entrez "{gestion_404}" (sans les guillemets) dans le champ "Message d'Erreur 404 personnalisé :"
Rendez-vous ensuite dans "Extensions -> Balises utilisateur" et cliquez sur "Ajouter une balise utilisateur"
Dans le champ "nom" entrez "gestion_404" (sans les guillemets)
Dans le champ "Code" entrez :

Code: Select all

$redirections = array('page/qui/nexiste/plus/' => '/nouvelle/page/');

foreach($redirections as $key => $value)
{
      if(strpos($_SERVER['REDIRECT_URL'], $key) !== false)
      {
            header('HTTP/1.1 301 Moved Permanently');
            header('Location: '. $value);
      }
}
Il vous suffit ensuite de remplir le tableau $redirections comme suit :
'page/qui/nexiste/plus/' => '/nouvelle/page/'

Par exemple si vous avez déplacé la page http://www.monsite.com/vieille/page vers http://www.monsite.com/nouvelle/page et la page http://www.monsite.com/une/autre-vieille-page.html vers http://www.monsite.com/ma/nouvelle-vieille-page.html. Votre tableau $redirections ressemblera à ceci :

Code: Select all

$redirections = array('vieille/page' => '/nouvelle/page', 'une/autre-vieille-page.html' => '/ma/nouvelle-vieille-page.html');
Voilà. je n'ai pas trouvé comment faire ça automatiquement, tant pis. Je vais me contenter de récupérer le code HTML du menu avant et le code HTML du menu après et convertir tout ça dans le bon format à coup de grep :-).

A bientôt
Leeroy

Re: Changement de l'alias de la page et redirection automatique

Posted: Sat Feb 06, 2010 2:30 pm
by kurashiki_ben
Bonjour,

J'ai essaye cette solution sous CMS 1.6.5, mais elle ne semble pas marcher.

Ma balise gestion_404 :

Code: Select all

$redirections = array('page/' => '/page1/');

foreach($redirections as $key => $value)
{
      if(strpos($_SERVER['REDIRECT_URL'], $key) !== false)
      {
            header('HTTP/1.1 301 Moved Permanently');
            header('Location: '. $value);
      }
}
Lorsque je vais sur www.monsite.com/page je ne vois que le message d'erreur 404 et pas de redirection.

Cette solution devrait-elle bien marcher même sous 1.6.5 ?

Merci

ben

Re: Changement de l'alias de la page et redirection automatique

Posted: Sat Feb 06, 2010 8:19 pm
by jce76350
re,

J'ai supprimer le  [Résolu]  Il aurait fallu reprendre un nouveau message en faisant référence à l'ancien !
J'ai essaye cette solution sous CMS 1.6.5
On est en version 1.6.6 donc il n'y pas de support pour la 1.6.5 ;)