Personnaliser la navigation avec .htaccess

Par défaut, lorsqu’Apache affiche la liste des fichiers d’un répertoire, le résultat est fonctionnel mais austère. Grâce au module mod_autoindex et à quelques directives bien placées dans un fichier .htaccess, il est possible de contrôler l’apparence de cette liste : icônes personnalisées, en‑tête et pied de page dynamiques, masquage de certains fichiers, tri, etc.

Cette page illustre une telle personnalisation. Vous pouvez explorer le répertoire pour voir le résultat en direct, puis étudier ci‑dessous le fichier .htaccess qui a été utilisé.

La sécurité n’est pas oubliée : les fichiers sensibles (backups .bak, .htaccess, .htpasswd) sont exclus de la liste, et les permissions d’accès restent sous le contrôle des directives d’authentification Apache.

Table des matières Haut

Le fichier .htaccess commenté

  1. #
  2. # Activation de nos propres options pour la représentation de la liste du répertoire
  3. #
  4. FancyIndexing On
  5. #
  6. # Descriptions
  7. #
  8. AddDescription "login: infobrol, password: password" protection
  9. AddDescription "Dossier Parent" ..
  10. AddDescription "Fichier de gestion des accès" .htaccess
  11. AddDescription "Définition des utilisateurs/mots de passe" .htpasswd
  12. AddDescription "Fichiers Web" .php .htm .html .jsp .asp
  13. #
  14. # Images
  15. #
  16. AddIcon /img/file/d_prev.gif ..
  17. AddIcon /img/file/fc.gif ^^DIRECTORY^^
  18. AddIcon /img/file/f_html.gif .php .htm .html
  19. AddIcon /img/file/f_txt.gif .txt
  20. AddIcon /img/file/f_gif.gif .gif .png
  21. AddIcon /img/file/f_jpg.gif .jpg
  22. AddIcon /img/file/f_inf.gif .htaccess .htpasswd
  23. DefaultIcon img/file/f_inconnu.gif.gif
  24. #
  25. # SuppressHTMLPreamble : n'affiche pas le préambule par défaut (nous allons utiliser le nôtre)
  26. # Les icônes sont affichées avec une hauteur fixe de 16 pixels et une largeur fixe de 16 pixels.
  27. # +DescriptionWidth=* La colonne de description a une largeur non limitée
  28. # FoldersFirst Les dossiers sont affichés en premier
  29. # IconsAreLinks Les icônes sont des liens vers les fichiers
  30. #
  31. IndexOptions SuppressHTMLPreamble IconHeight=16 IconWidth=16 +DescriptionWidth=* FoldersFirst IconsAreLinks
  32. #
  33. # Utilisation de nos propres fichiers d'en-tête et de bas de page
  34. #
  35. HeaderName /htaccess/avec_style/page-top.html
  36. ReadmeName /htaccess/avec_style/page-bottom.html
  37. #
  38. # Ne pas afficher les fichiers qui portent l'extension .bak
  39. #
  40. IndexIgnore *.bak

Analyse des directives

Directive | Rôle |
Options +Indexes | Active l'affichage du contenu du répertoire lorsqu'aucun fichier index (index.html, index.php…) n'est présent. |
DefaultIcon | Définit l'icône affichée pour les fichiers dont le type MIME n'est pas reconnu ou pour lesquels aucune icône spécifique n'a été définie. |
AddIcon | Associe une icône à une extension de fichier, un type MIME ou un nom de fichier. ^^DIRECTORY^^ est un mot‑clé spécial représentant les répertoires. |
HeaderName | Spécifie le nom d'un fichier (HTML ou script PHP) qui sera inséré avant la liste des fichiers. Ici, header.php génère dynamiquement un fil d'Ariane. |
ReadmeName | Spécifie le nom d'un fichier inséré après la liste. footer.php inclut le pied de page standard du site. |
IndexIgnore | Masque certains fichiers ou motifs de la liste. Par défaut, les fichiers commençant par .ht sont déjà exclus. Ici, on ajoute les sauvegardes .bak et les scripts d'en‑tête/pied pour ne pas les afficher. |
IndexOrderDefault | Détermine l'ordre de tri de la liste. Ascending Name trie par nom croissant. D'autres options existent : Descending Date, Ascending Size, etc. |
Directive | Rôle |
12

Table des matières Haut

Démonstrations complémentaires

Les autres répertoires de test vous permettent de comparer différentes configurations :

La page complète sur les .htaccess approfondit chaque sujet et propose un générateur de mots de passe compatible avec les commandes htpasswd.

Bonnes pratiques et sécurité

  • Ne pas activer Indexes en production sauf si vous avez une bonne raison de partager la liste des fichiers (intranet, miroir de téléchargement).
  • Toujours masquer les fichiers sensibles : utilisez IndexIgnore pour exclure les sauvegardes, les fichiers de configuration, les données temporaires.
  • Préférez des scripts PHP sécurisés pour HeaderName et ReadmeName, et validez toutes les entrées utilisateur (le chemin est automatiquement passé par Apache, mais les scripts peuvent être appelés autrement).
  • Utilisez HTTPS si la navigation par répertoire expose des fichiers confidentiels ou si un formulaire d’authentification est présent.

Table des matières Haut

La personnalisation de la navigation dans les répertoires est une fonctionnalité puissante mais souvent méconnue d'Apache. Utilisée avec discernement, elle permet de créer des interfaces de partage de fichiers élégantes sans écrire une ligne de code. Reportez‑vous toujours à la documentation officielle d'Apache pour la liste exhaustive des directives de mod_autoindex.

Document créé le 12/03/2006 11:59:06, dernière modification le 03/06/2026 c20260609-072439
Source du document imprimé : https://www.gaudry.be/htaccess/avec_style/info.php

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.

Notes
  1. a,b Icônes personnalisées : Les icônes utilisées dans la démo sont stockées dans le répertoire /icons/ du serveur Apache. Vous pouvez les personnaliser en pointant vers vos propres images.

  2. a,b Masquage de fichiers : La directive IndexIgnore permet de masquer certains fichiers de la liste. Par défaut, Apache ignore déjà les fichiers commençant par .ht. Vous pouvez étendre cette liste pour vos propres extensions sensibles.

Table des matières Haut

Références
  1. en 🔗 Documentation officielle du module mod_autoindex (directory listing) : Apache Software Foundation, Apache Module mod_autoindex

Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.

Table des matières Haut