https://www.facebook.com/tr?ev=6029847359740&cd[value]=0.01&cd[currency]=EUR&noscript=1

Note de l'utilisateur: 4 / 5

Donnez une note !
4 sur 5 - 3 votes
Merci d'avoir noté cet article.

Pour des raisons pratiques et de référencement, un webmaster a souvent envie de supprimer les ID qui apparaissent dans les URL's de Joomla.

Voici une méthode qui fonctionne.

Méthode pour Supprimer le ID des Urls dans Joomla.

Ouvrez components\com_content\router.php dans un éditeur et faites quelques petits changements:

dans la fonction ContentBuildRoute(&$query) remplacez la ligne 27

$advanced    = $params->get('sef_advanced_link', 0);

par

$advanced    = $params->get('sef_advanced_link', 1);

dans la fonction ContentParseRoute($segments) remplacez la ligne 208

$advanced    = $params->get('sef_advanced_link', 0);

par

$advanced    = $params->get('sef_advanced_link', 1);

Commentez les lignes 228-232

if (strpos($segments[0], ':') === false) {
    $vars['view'] = 'article';
    $vars['id'] = (int)$segments[0];
    return $vars;
}

Qui deviendront ainsi :

/*
if (strpos($segments[0], ':') === false) {
    $vars['view'] = 'article';
    $vars['id'] = (int)$segments[0];
    return $vars;
}
*/

C'est tout !

J'ai testé sur mon site en Joomla 2.5.7 et ça a l'air de fonctionner, mais je ne peux dire et garantir si cela fonctionne dans tous les cas.

( à partir du tutoriel : http://developernote.com/2012/05/how-to-remove-id-from-url-in-joomla-2-5/)

Quelques explications

Si vous avez essayé la méthode décrite ci-dessus et que cela fonctionne pour vous, vous pouvez laisser tout tel quel et fermer cette page, mais si vous intéressé par une explication veuillez lire ci-dessous.

Comme on le voit à partir des lignes 27 et 208 le Composant Contenu de Joomla (com_content) utilise le paramètre ‘sef_advanced_link’, ainsi régler ce paramètre à '1' élimine la nécessité de changer ces lignes. Cela pourrait être fait en ajoutant le code XML suivant à la section « fieldset » de administrator\components\com_content\config.xml:

<field
name="sef_advanced_link"
type="radio"
default="0"
label="Mode Sef Avancé "
description="Supprimer ItemID de contenu URL ?">
<option
value="0">JNO</option>
<option
value="1">JYES</option>
</field>

 

et le réglage ‘Mode Sef Avancé’ sur oui dans la fenêtre ‘Paramètres de gestion et d'affichage des articles’ :

sef avance

Veuillez noter que le réglage par défaut=”1″ dans le fichier XML ne prend pas toujours effet pour certaines raisons.

En ce qui concerne des lignes 228-232, si je les laisse décommentées l'ID disparaît des URL et les articles simples s'ouvrent très bien mais quand je tente d'ouvrir une catégorie non lié à un élément de menu j'ai le message d'erreur classique “404 – Article not found”. Je ne peux pas dire avec certitude, mais je pense que les développeurs de Joomla ont ajouté le paramètre ‘sef_advanced_link’ mais ne l'ont pas assez testé, donc, probablement, ils corrigeront ce code dans les versions futures.

Commentaires   
0 #1 lavsteph 03-11-2012 23:59
Bonsoir,

le principe est sympa sur un site tout juste créé, mais je vais mettre des bémols.

Sur de gros sites comme exemple le mien qui a des beaucoup de liens déjà établi le risque est le duplicate content vu que les anciennes urls ne sont pas redirigées correctement vers les nouvelles.

De plus la Team core Joomla choisit de modifier par la suite le router ( ce qui ne serait pas si étonnant) cela risque de poser quelques problèmes par la suite.

L'astuce est sympa certes, mais à prendre avec des pincettes et à utiliser en connaissance de cause ( déconseillé aux débutants à mon avis). Difficile de compenser des extensions spécifiques de réécriture d'urls si simplement que çà.
Citer | Signaler à l’administrateur
Ajouter un Commentaire