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.
Le fichier .htaccess commenté
Code source (.htaccess) (40 lignes)
# # Activation de nos propres options pour la représentation de la liste du répertoire # FancyIndexing On # # Descriptions # AddDescription "login: infobrol, password: password" protection AddDescription "Dossier Parent" .. AddDescription "Fichier de gestion des accès" .htaccess AddDescription "Définition des utilisateurs/mots de passe" .htpasswd AddDescription "Fichiers Web" .php .htm .html .jsp .asp # # Images # AddIcon /img/file/d_prev.gif .. AddIcon /img/file/fc.gif ^^DIRECTORY^^ AddIcon /img/file/f_html.gif .php .htm .html AddIcon /img/file/f_txt.gif .txt AddIcon /img/file/f_gif.gif .gif .png AddIcon /img/file/f_jpg.gif .jpg AddIcon /img/file/f_inf.gif .htaccess .htpasswd DefaultIcon img/file/f_inconnu.gif.gif # # SuppressHTMLPreamble : n'affiche pas le préambule par défaut (nous allons utiliser le nôtre) # Les icônes sont affichées avec une hauteur fixe de 16 pixels et une largeur fixe de 16 pixels. # +DescriptionWidth=* La colonne de description a une largeur non limitée # FoldersFirst Les dossiers sont affichés en premier # IconsAreLinks Les icônes sont des liens vers les fichiers # IndexOptions SuppressHTMLPreamble IconHeight=16 IconWidth=16 +DescriptionWidth=* FoldersFirst IconsAreLinks # # Utilisation de nos propres fichiers d'en-tête et de bas de page # HeaderName /htaccess/avec_style/page-top.html ReadmeName /htaccess/avec_style/page-bottom.html # # Ne pas afficher les fichiers qui portent l'extension .bak # IndexIgnore *.bak
Analyse des directives
^^DIRECTORY^^ est un mot‑clé spécial représentant les répertoires. | header.php génère dynamiquement un fil d'Ariane. | footer.php inclut le pied de page standard du site. | .ht sont déjà exclus. Ici, on ajoute les sauvegardes .bak et les scripts d'en‑tête/pied pour ne pas les afficher. | Ascending Name trie par nom croissant. D'autres options existent : Descending Date, Ascending Size, etc. | Démonstrations complémentaires
Les autres répertoires de test vous permettent de comparer différentes configurations :
- Accéder au répertoire personnalisé : visualisez le résultat des directives expliquées ci‑dessus.
- Répertoire parent (défaut) : observez la différence avec une navigation non personnalisée (icônes standards, sans en‑tête).
- Répertoire protégé par mot de passe : testez l’authentification HTTP Basic (utilisateur : infobrol, mot de passe : password).
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
Indexesen 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
IndexIgnorepour exclure les sauvegardes, les fichiers de configuration, les données temporaires. - Préférez des scripts PHP sécurisés pour
HeaderNameetReadmeName, 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.
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.
- ↑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. - ↑a,b Masquage de fichiers : La directive
IndexIgnorepermet 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.
🔗 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.