htaccess : Un fichier très configurable pour votre serveur Web

Le .htaccess est un fichier de configuration pour votre serveur Apache. Il permet de définir des règles pour un dossier ainsi que ses sous-dossiers. Ce fichier vous permet entre autres de faire des redirections, de protéger un répertoire par mot de passe, de créer vos propres pages d’erreurs …

Le .htaccess : Qu’est ce que c’est? Comment l’utiliser?

Le fichier .htaccess permet d’ajouter des directives (des ordres) à votre serveur Apache. Les directives du .htaccess sont appliquées à tous le dossier où il se trouve, ainsi qu’à tous les sous dossier tant qu’il n’y à pas de réécriture.

Prenons un exemple pour que ce soit plus clair :

htacces fichier explication fonctionnement

  • Dans l’image ci-dessus nous avons un premier fichier htaccess dans le « Dossier 1 ». Nous y avons ajouté la directive « deny from all » (qui bloque l’accès aux fichiers et dossiers). Les directives que nous mettons à l’intérieur s’appliquent donc à l’ensemble des dossiers, fichiers et sous dossiers se trouvant dans le « Dossier 1 ». Nous n’avons donc plus accès à aucun fichier, dossier ou sous-dossier se trouvant dans le « Dossier 1 ».
  • Dans le « Dossier 2 », nous avons également un fichier htaccess :
    • Nous ne  réécrivons pas l’instruction « deny from all » : dans ce cas, aucun changement, tous ce qui se trouve dans « Dossier 1 » reste inaccessible.
    • Nous réécrivons l’instruction « allow from all » : dans ce cas, seul le « Dossier 2 » est accessible par tout le monde, les Dossiers 3 et 4 ne le sont pas.

Il vous sera impossible de créer le fichier « .htaccess » directement sur Windows, un nom de fichier vous sera toujours demandé. Pour le créer vous avez 2 méthodes :

  1. Vous le créez directement sur votre FTP puis vous l’éditez.
  2. Vous l’enregistrez depuis votre éditeur de texte, et quand vous le nommez, ajouter des guillemets :

creation fichier htaccess tutoriel

Quand ne pas utiliser le fichier .htaccess?

Dans l’idéal, vous ne devez jamais utiliser de fichier .htaccess. Tous les réglages peuvent se faire directement dans les fichiers de configurations du serveur. Mais si votre site est sur un serveur mutualisé (ce qui est très souvent le cas lorsque vous démarrez) vous n’avez dans ce cas pas accès à ces fichiers. Il vous est donc nécessaire de passer par le .htaccess, de le créer au besoin dans les dossiers qui vous semblent utiles.

Si vous hébergez votre site sur un serveur dédié, nous vous conseillons de configurer directement Apache.

La principale raison d’éviter l’utilisation du .htaccess est : la perte de performance du serveur. Quand on utilise les fichiers .htaccess, le serveur va rechercher dans chaque répertoire la présence d’un fichier de même nature. Il doit également rechercher dans tous les répertoires parents pour rassembler toutes les directives. De plus, cette recherche se fait pour chaque requête sur un fichier.

Quelques instructions utiles pour votre .htaccess

De nombreuses utilisations sont possibles et il n’est pas rare que son usage un peu trop important gêne au fonctionnement de l’ensemble d’un site Internet. En référencement naturel, on utile particulièrement ce dernier pour créer des redirections et nous en avons déjà parlé à maintes reprises. Mais son usage peut être multiple comme nous le voyons ici.

Pensez à faire une sauvegarde de votre fichier .htaccess avant toute modification!!

Maintenant que nous en savons un peu plus sur son fonctionnement et son utilité, nous allons voir quelques instructions qui peuvent être utiles et que vous devez observer lors de la création de votre site Internet.

Bloquer l’accès à certains contenus

Pour plusieurs raisons vous pourriez avoir envie de bloquer l’accès à certains dossiers ou fichiers disponible sur votre hébergement. Typiquement, ces restrictions peuvent être utiles pour des back-office ou des dossiers très sensibles. Nous allons voir comment les protéger.

Protéger un dossier par identification

Il est possible de protéger l’accès d’un dossier avec un identifiant et un mot de passe, voici le code à intégrer dans votre fichier .htaccess :

Protection d'un dossier par mot de passe
AuthUserFile /chemin/absolu/.motsdepasse
AuthName "Accès protégé"
AuthType Basic
Require valid-user
  • AuthUserFile : Chemin absolu indiquant où trouver le fichier contenant les mots de passe.
  • AuthName : C’est le texte qui s’affichera sur la boite de dialogue demandant les identifiants.
  • AuthType Basic : indique qu’il faut utiliser AuthUserFile pour vérifier les mots de passe. Dans ce cas ce sera le fichier « .motsdepasse ».
  • Require valid-user : indique que seul les utilisateurs identifiés sont autorisés.

Le fichier contenant les mot de passe peut avoir n’importe quel nom. La syntaxe à respecter pour l’utilisateur et son mot de passe est :

Syntaxe des Mots de passe
Pseudo:Mot_de_passe

Protection de fichier par mot de passe : Un classique pour protéger les données sensibles

Voici l’instruction à utiliser pour protéger un fichier :

Protection d'un fichier par mot de passe
<Files monfichier.php>
AuthUserFile /chemin/absolu/.motsdepasse
AuthName "Accès refusé"
AuthType Basic
require valid-user
</Files>
  • Un seul fichier peut être protégé avec ce code. Il faudra donc le répéter autant de fois que de fichier à protéger.
  • Ce sont les mêmes instructions que pour protéger un dossier, seul <Files></Files> est à ajouter.

Depuis Apache 1.3 , la balise <FilesMatch> peut aussi être utilisé. Elle ne permet de gérer qu’un seul argument, mais l’utilisation d’expressions régulières permet de gérer plusieurs fichiers.

Création de redirections avec le fichier htaccess, à connaître lorsque l’on gère un site !

Pour diverses raisons, vous pouvez être amené à vouloir faire des redirections (passage du hhtp au https, erreurs…). Grâce au .htaccess, vous pouvez très facilement le faire en suivant quelques règles ci-dessous. C’est d’autant plus important que la perte de trafic suite à de nombreuses 404 est une réalité particulièrement rageante, pour ne citer que ce cas.

Personnalisation des pages d’erreur

Si vous souhaitez créer des pages d’erreur personnalisées, vous pouvez utiliser ces codes :

Redirections des pages d'erreurs
ErrorDocument 401 /erreurs/erreur_401.php
ErrorDocument 403 /erreurs/erreur_403.php
ErrorDocument 404 /erreurs/erreur_404.php
ErrorDocument 500 /erreurs/erreur_500.php
...

Redirection de liens : (Utilisé tous les jours à l’agence ou presque 😉 )

Si vous avez supprimé une page, ou que son URL à changé, il est nécessaire de faire une redirection vers la nouvelle page (sinon il y aura une erreur 404). Dans l’exemple qui suit, notez que la redirection pointe vers une url absolue (le https + wwww + le nom de domaine et l’URI de la page qui est ici « nouvellepage ») :

Redirection de liens
Redirect 301 /anciennepage/ http://www.monsite.com/nouvellepage

Inutile de dire que ces erreurs 404 peuvent foisonner si l’on effectue une refonte de site Internet « bourrin »  de l’ensemble sans attention sur l’existant. Prenez le temps de les analyser avec un outil comme Screaming Frog qui se charge de les retrouver assez facilement en interne et (même en externe pour les liens que vous produisez sur d’autres sites).

Nombreux de ceux qui nous lisent utilisent le CMS WordPress, il bénéficie de facilités pour faire des redirections mais il permet surtout à l’aide d’un plugin à télécharger occasionnellement de trouver ces erreurs:  Broken Link Checker analyse rapidement votre site pour trouver tous les liens cassés et générant donc des erreurs 404.

Vérification de votre .htaccess

Si une erreur se glisse dans votre fichier .htaccess, vous vous retrouverez avec une erreur 500 (page blanche). Il faut dans ce cas retrouver d’où viens le problème, ce qui n’est pas tout le temps évident quand on commence à avoir beaucoup de ligne. Vous pouvez dans ce cas copier le contenu de votre fichier et le coller sur le site htaccesscheck.com qui vous indiquera où se trouvent les erreurs.

Et vous, quel usage faites-vous de votre fichier .htaccess ?

Enregistrer

Enregistrer

Enregistrer

Enregistrer

[Total : 2    Moyenne : 5/5]

A propos de l'auteur(e)

Articles liés

Aucune réponse sur le blog lui-même

Laissez un commentaire