Introduction

Les URLs conviviales pour les moteurs de recherche (SEF), lisibles par l'homme ou "propres", sont des URLs qui ont du sens à la fois pour les humains et pour les moteurs de recherche, car elles expliquent le chemin vers la page particulière vers laquelle elles pointent. Joomla! est capable de créer et d'analyser des URLs dans n'importe quel format, y compris les URLs SEF. Cela ne dépend pas de la réécriture d'URL exécutée par le serveur web, donc cela fonctionne même si Joomla! est exécuté sur un serveur autre qu'Apache avec le module mod_rewrite. Les URLs SEF suivent un certain modèle fixe, mais l'utilisateur peut définir un texte descriptif court (alias) pour chaque segment de l'URL.

En interne, la partie locale d'une URL SEF (la partie après le nom de domaine) est appelée une route. La création et le traitement des URLs SEF sont donc appelés routage, et le code correspondant est appelé un routeur.

Cet article traite des URLs SEF sous le serveur web populaire et open-source Nginx.

Étapes pour les serveurs NginX¶

  • Ajouter le code suivant à la configuration de votre serveur (vhost) dans le fichier nginx.conf :
    # Support Clean (aka Search Engine Friendly) URLs
    location / {
       try_files $uri $uri/ /index.php?$args;
    }
  • Si ce qui précède ne fonctionne pas, ajouter le code suivant à la configuration de votre serveur dans le fichier nginx.conf : (Cela a fonctionné avec nginx 1.4.6 sur Ubuntu.)
    server {
      ....
      location / {
      expires 1d;

      # Enable joomla SEF URL's inside Nginx
      try_files $uri $uri/ /index.php?$args;
      }
      ....
    }
  • Se connecter à votre back-end et ouvrir la Configuration Générale
  • Activer l'option URLs favorables aux moteurs de recherche et enregistrer. Cette option convertit les URLs du format natif de Joomla! vers le format SEF. Vérifier que votre site fonctionne correctement. Vos URLs devraient maintenant ressembler à http://www.example.com/index.php/the-­news/1-­latest­-news/1­-welcome­-to­-joomla. Si votre site ne fonctionne pas correctement, veuillez consulter Why does your site get messed up when you turn on SEF (Search Engine Friendly URLs)?
  • Activer l'option Utiliser la réécriture d'URL Apache mod_rewrite et enregistrer. Cette option utilise la fonction mod_rewrite d'Apache pour éliminer la partie index.php de l'URL. Vérifier que votre site fonctionne correctement. Vos URLs devraient maintenant ressembler à http://www.example.com/the-­news/1­-latest-­news/1-­welcome-­to­-joomla. Si cette option provoque des erreurs, veuillez consulter How to check if mod rewrite is enabled on your server. S'il n'est pas activé et que vous avez accès au fichier apache/conf/httpd.conf, ouvrir ce fichier et vérifier que la ligne LoadModule rewrite_module modules/mod_rewrite.so n'est pas commentée. Si nécessaire, décommenter la ligne et redémarrer le serveur web Apache. Si mod_rewrite ne peut pas être activé, laisser cette option désactivée. Peu importe que vous laissiez le fichier .htaccess renommé.
  • Si vous pensez que cela est nécessaire, activer Ajouter un suffixe aux URLs et Enregistrer. Cette option ajoute .html à la fin des URLs. Les avis divergent sur l'utilité ou la nécessité de cette option. Les moteurs de recherche ne semblent pas se soucier que vos URLs se terminent par .html ou non.
  • Ouvrir le Gestionnaire de plugins et activer le plugin Système - SEF. Ce plugin ajoute le support SEF aux liens dans vos articles Joomla. Il opère directement sur le HTML et ne nécessite pas de balise spéciale.