Moov’Up

Fiche pratique : le fichier .htaccess


Fiche pratique : le fichier .htaccess

Il n’est jamais trop tard pour acquérir les bases du SEO. Notre mission ? Vous faire aimer le référencement naturel grâce à nos fiches pratiques !

Nom étrange s’il en est, il n’est pas rare que votre référenceur vous parle du fichier .htaccess . S’il est préférable de maîtriser un socle technique pour gérer le référencement d’un site, la connaissance du .htaccess en constitue l’une des bases, juste après la maîtrise du code. Sans être un fichier propre au SEO, le .htaccess permet cependant de gérer plusieurs problématiques relatives au référencement naturel.

Qu’est-ce que le .htaccess ?

Pour faire simple (nos amis développeurs, nous pardonnerons) le fichier .htaccess est un fichier qui permet d’indiquer des commandes à un serveur Apache sur lequel sont stockés des fichiers, comme un site internet, par exemple. C’est lui qui permet, par exemple, de protéger une page avec un mot de passe. Placé dans un répertoire, il agit sur tous les sous-répertoires contenus par celui-ci. C’est pourquoi, pour un site internet, on le place généralement à la racine du site afin qu’il agisse sur tous les répertoires du site. Il peut y en avoir plusieurs lorsque l’on souhaite agir spécifiquement sur un ou plusieurs répertoires.

Ses usages sont multiples mais parmi toutes les utilisations possibles certaines peuvent être très utiles à la gestion de problématiques SEO, comme:

  • – les redirections,
  • – les réécritures d’url,
  • – l’affichage de pages 404 personnalisées,
  • – l’indexation des contenus

 

.htaccess pour les réécritures d’url

Parfois votre système de gestion identifie vos pages avec un numéro ou encore votre url propose des paramètres, si bien que vous vous retrouvez avec une url du trype : http://www.votredomaine.com/page.php?id=52 mais vous souhaiteriez que votre url ait la forme http://www.votredomaine.com/page-52.php.

Le .htaccess va vous permettre de régler cela en 2 temps :

  • – Indiquer au serveur que l’on autorise la réécriture d’url
  • – Executer une règle de réécriture

 

Cela ne vous demandera que 3 lignes :

Options +FollowSymlinks
RewriteEngine on (ces 2 1ères lignes autorisent la réécriture)
RewriteRule ^(.*)-([0-9]+).php$ /$1.php?id=$2 [L] (la règle de réécriture)

Un peu barbare, on en convient, mais une fois que l’on maîtrise la base des expressions régulières, il est possible de créer de nombreuses règles très utiles. Pour en savoir plus, il existe de nombreux sites pour apprendre facilement à créer des règles avec les expressions régulières. Mais retenez déjà ces éléments et leurs significations :

  1. les () permettent de créer un groupe
  2. les . <=> « n’importe quel caractère »
  3. les * <=> « supprime ou répète le caractère précédent une ou plusieurs fois »
  4. [0-9] <=> « n’importe quel chiffre entre 0 et 9 »
  5. le + <=> « répète le caractère précédent une ou plusieurs fois »
  6. $1 / $2 / $3 <=> permettent de récupérer le contenus des groupes (entre parenthèses)
  7. ^ <=> début d’une chaîne de caractère
  8. <=> retire l’attribution d’un caractère : devant un . il permet d’indiquer que le . est juste un . et non un élément de la règle.
  9. $ <=> fin d’une chaîne de caractères

 

Dans notre cas de réécriture d’url, ces règles vous ont permis de réécrire votre url. Mais attention, si vous vous arrêtez là, les 2 urls vont cohabiter. Il vous faudra donc faire une règle de redirection afin d’éviter le contenu dupliqué.

Redirection qui se gère sur quel fichier ? Et oui votre .htaccess aussi!

.htaccess et redirections d’urls

Savoir-faire une redirection sur un .htaccess est un incontournable.

Pour réussir une redirection, il va falloir indiquer au serveur 3 éléments :

  • – L’ordre de Redirection;
  • – L’url de la page à rediriger;
  • – L’url de la page de destination de la redirection.

 

Ainsi, si je veux rediriger une page vers une autre de façon permanente (redirection 301), voici à quoi  va ressembler ma ligne de code :

RedirectPermanent /seo/ancienne-page-seo.html http://www.domaine.com/seo-new/nouvelle-page-seo.html

Et encore une fois, il suffit d’indiquer les bons paramètres pour avoir la bonne redirection :

Un domaine vers un autre domaine

RedirectPermanent / http://www.votre-nouveau-domaine.com/

Ou un répertoire vers un nouveau répertoire

RedirectPermanent /seo http://www.domaine.com/seo-new

Si votre redirection est temporaire il faudra mettre :

Redirect 302 / http://www.votre-nouveau-domaine.com/

Et comme nous l’avons vu avec la réécriture d’url, en plus des redirections simples pour faciliter le travail et gagner du temps, il est possible d’exécuter des règles de redirections grâce aux expressions régulières. Ainsi, pour nos urls avec paramètres réécrites, nous pouvons mettre en place une règle de redirection afin d’éviter de générer du contenu dupliqué :

RewriteRule ^(.*).php?id=([0-9]+)$ http://votre-domaine.com$1-$2.php [R=301,L]

Cette fois on utilise RewriteRule pour indiquer qu’il s’agit d’une règle et on indique ensuite que les urls se terminant par /.php/? »un chiffre entre 0 et 9 pouvant être répété plusieurs fois » doivent être redirigées de façon permanente (code 301) vers les urls se terminant par « le contenu équivalent à la suite de caractères évoquée dans l’url précédente« .php

Mettre en place des 404 personnalisées

Lorsqu’un internaute recherche une page qui renvoie un code erreur 404 (page inexistante), vous pouvez faire en sorte d’afficher une page personnalisée afin de ne pas perdre vos visiteurs. Le .htaccess vous permet de réaliser cela très facilement. Il vous suffit de :

  • – Créer une page 404 avec des liens vers vos pages principales + un contact pour optimiser les visites sur cette page : http://www.votre-domaine.com/404.html .
  • – Indiquer via le .htaccess que c’est cette page qui doit apparaître quand le code 404 est envoyé en réponse à la requête grâce à une ligne de code :
ErrorDocument 404 /404.html

Et cela fonctionne pour tous les codes d’erreurs !

Gérer l’indexation de vos contenus

Parmi les directives intéressantes en termes SEO, le .htaccess peut vous permettre de mettre en place des règles pour gérer l’indexation de vos contenus.

Comment ? En indiquant au serveur que l’on souhaite indiquer telle en-tête robots tag dans le header pour telle page ou tel type de contenus.

Un exemple simple : vous ne souhaitez pas que l’une de vos pages soit indexée, il vous suffit d’indiquer :

<Files votre-page.html>
Header set X-Robots-Tag "noindex, nofollow"
</Files>

Comme vous pouvez le voir sur cet exemple, vous choisissez votre directive robots comme pour une balise html. Vous pouvez opter aussi pour une directive noindex, follow, si vos liens peuvent être suivis par les robots des moteurs de recherche.

Autre exemple, vous souhaitez qu’un ensemble de fichiers ne soit pas indexé. Vous avez un catalogue produits en ligne et vous proposez le téléchargement des fiches produits en pdf avec le même contenu que vos pages produits. Une bonne raison de vouloir désindexer vos pdf et pour cela il vous faudra ajouter à votre .htaccess :

<FilesMatch ".pdf$">
Header set X-Robots-Tag "noindex, nofollow"
</Files>

Utile pour indiquer de très nombreuses directives à un serveur Apache, le .htaccess est donc indispensable dès lors que l’on souhaite maîtriser au mieux les contenus d’un site stocké sur ce type de serveur, dans une perspective SEO. Les utilisations sont nombreuses et nous vous avons montré ici qu’une petite part des possibilités. Il peut par exemple aussi vous aider à gérer les performances de votre site, mais pour une première approche, vous avez déjà ici les éléments de base pour appréhender votre fichier .htaccess.