fancyindex: Module NGINX Fancy Index
Installation
Vous pouvez installer ce module dans toute distribution basée sur RHEL, y compris, mais sans s'y limiter :
- RedHat Enterprise Linux 7, 8, 9 et 10
- CentOS 7, 8, 9
- AlmaLinux 8, 9
- Rocky Linux 8, 9
- Amazon Linux 2 et Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-fancyindex
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install nginx-module-fancyindex
Activez le module en ajoutant ce qui suit en haut de /etc/nginx/nginx.conf :
load_module modules/ngx_http_fancyindex_module.so;
Ce document décrit nginx-module-fancyindex v0.6.1 publié le 01 mars 2026.
Module Nginx Fancy Index
Le module Fancy Index permet de générer des listes de fichiers, comme le fait le module intégré autoindex, mais en ajoutant une touche de style. Cela est possible car le module permet un certain degré de personnalisation du contenu généré :
- En-têtes personnalisés, soit locaux, soit stockés à distance.
- Pieds de page personnalisés, soit locaux, soit stockés à distance.
- Ajoutez vos propres règles de style CSS.
- Permet de choisir de trier les éléments par nom (par défaut), date de modification ou taille ; à la fois par ordre croissant (par défaut) ou décroissant.
Ce module est conçu pour fonctionner avec Nginx, un serveur web open source haute performance écrit par Igor Sysoev.
Exigences
CentOS, RHEL, Fedora Linux
Pour les utilisateurs du dépôt stable officiel de Nginx, un dépôt de packages supplémentaires avec des modules dynamiques est disponible et fancyindex est inclus.
Installez la configuration du dépôt, puis le package du module :
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install nginx-module-fancyindex
Ensuite, chargez le module dans /etc/nginx/nginx.conf en utilisant :
load_module "modules/ngx_http_fancyindex_module.so";
macOS
Les utilisateurs peuvent installer Nginx sur macOS avec MacPorts ; fancyindex est inclus :
sudo port install nginx
Autres plateformes
Dans la plupart des autres cas, vous aurez besoin des sources pour Nginx. Toute version à partir de la série 0.8 devrait fonctionner.
Pour utiliser les directives fancyindex_header_ et fancyindex_footer_, vous aurez également besoin du ngx_http_addition_module intégré à Nginx.
Construction
-
Décompressez les sources de Nginx :
$ gunzip -c nginx-?.?.?.tar.gz | tar -xvf - -
Décompressez les sources pour le module de classement fancy :
$ gunzip -c nginx-fancyindex-?.?.?.tar.gz | tar -xvf - -
Changez de répertoire vers celui contenant les sources de Nginx, exécutez le script de configuration avec les options souhaitées et assurez-vous d'ajouter un drapeau
--add-modulepointant vers le répertoire contenant la source du module de classement fancy :$ cd nginx-?.?.? $ ./configure --add-module=../nginx-fancyindex-?.?.? \ [--with-http_addition_module] [options supplémentaires souhaitées]Depuis la version 0.4.0, le module peut également être construit en tant que module dynamique, en utilisant
--add-dynamic-module=…à la place etload_module "modules/ngx_http_fancyindex_module.so";dans le fichier de configuration. -
Construisez et installez le logiciel :
$ makeEt ensuite, en tant que
root:# make install -
Configurez Nginx en utilisant les directives de configuration des modules.
Exemple
Vous pouvez tester le style intégré par défaut en ajoutant les lignes suivantes dans une section server de votre fichier de configuration Nginx :
location / {
fancyindex on; # Activer les index fancy.
fancyindex_exact_size off; # Afficher des tailles de fichiers lisibles par l'homme.
}
Thèmes
Les thèmes suivants démontrent le niveau de personnalisation qui peut être atteint en utilisant le module :
- Thème par @TheInsomniac. Utilise un en-tête et un pied de page personnalisés.
- Thème par @Naereen. Utilise un en-tête et un pied de page personnalisés. L'en-tête comprend un champ de recherche pour filtrer par nom de fichier en utilisant JavaScript.
- Thème par @fraoustin. Thème réactif utilisant des éléments de Material Design.
- Thème par @alehaa. Thème simple et plat basé sur Bootstrap 4 et FontAwesome.
Directives
fancyindex
Syntaxe
fancyindex [on | off]
Par défaut
fancyindex off
Contexte
http, server, location
Description
Active ou désactive les index de répertoire fancy.
fancyindex_default_sort
Syntaxe
fancyindex_default_sort [name | size | date | name_desc | size_desc | date_desc]
Par défaut
fancyindex_default_sort name
Contexte
http, server, location
Description
Définit le critère de tri par défaut.
fancyindex_case_sensitive
Syntaxe
fancyindex_case_sensitive [on | off]
Par défaut
fancyindex_case_sensitive on
Contexte
http, server, location
Description
Si activé (paramètre par défaut), le tri par nom sera sensible à la casse. S'il est désactivé, la casse sera ignorée lors du tri par nom.
fancyindex_directories_first
Syntaxe
fancyindex_directories_first [on | off]
Par défaut
fancyindex_directories_first on
Contexte
http, server, location
Description
Si activé (paramètre par défaut), regroupe les répertoires ensemble et les trie avant tous les fichiers réguliers. S'il est désactivé, les répertoires sont triés avec les fichiers.
fancyindex_css_href
Syntaxe
fancyindex_css_href uri
Par défaut
fancyindex_css_href ""
Contexte
http, server, location
Description
Permet d'insérer un lien vers une feuille de style CSS dans les listes générées. Le paramètre uri fourni sera inséré tel quel dans une balise <link> HTML. Le lien est inséré après les règles CSS intégrées, vous pouvez donc remplacer les styles par défaut.
fancyindex_exact_size
Syntaxe
fancyindex_exact_size [on | off]
Par défaut
fancyindex_exact_size on
Contexte
http, server, location
Description
Définit comment représenter les tailles de fichiers dans la liste des répertoires : soit avec précision, soit en arrondissant au kilooctet, mégaoctet et gigaoctet.
fancyindex_footer
Syntaxe
fancyindex_footer path [subrequest | local]
Par défaut
fancyindex_footer ""
Contexte
http, server, location
Description
Spécifie quel fichier doit être inséré en bas des listes de répertoires. S'il est défini sur une chaîne vide, le pied de page par défaut fourni par le module sera envoyé. Le paramètre optionnel indique si le path doit être traité comme une URI à charger en utilisant une subrequest (par défaut), ou s'il fait référence à un fichier local.
note
L'utilisation de cette directive nécessite le ngx_http_addition_module_ intégré à Nginx.
warning
Lors de l'insertion d'un en-tête/pied de page personnalisé, une subrequest sera émise, donc potentiellement n'importe quelle URL peut être utilisée comme source pour eux. Bien que cela fonctionne avec des URL externes, seul l'utilisation d'URL internes est prise en charge. Les URL externes ne sont pas du tout testées et leur utilisation fera bloquer Nginx en attendant que la subrequest se termine. Si vous pensez qu'un en-tête/pied de page externe est indispensable pour vous, veuillez me le faire savoir.
fancyindex_header
Syntaxe
fancyindex_header path [subrequest | local]
Par défaut
fancyindex_header ""
Contexte
http, server, location
Description
Spécifie quel fichier doit être inséré en haut des listes de répertoires. S'il est défini sur une chaîne vide, l'en-tête par défaut fourni par le module sera envoyé. Le paramètre optionnel indique si le path doit être traité comme une URI à charger en utilisant une subrequest (par défaut), ou s'il fait référence à un fichier local.
note
L'utilisation de cette directive nécessite le ngx_http_addition_module_ intégré à Nginx.
fancyindex_show_path
Syntaxe
fancyindex_show_path [on | off]
Par défaut
fancyindex_show_path on
Contexte
http, server, location
Description
Indique s'il faut ou non afficher le chemin et la balise de fermeture \</h1> après l'en-tête. Cela est utile lorsque vous souhaitez gérer l'affichage du chemin avec un script PHP par exemple.
warning
Cette directive ne peut être désactivée que si un en-tête personnalisé est fourni en utilisant fancyindex_header.
fancyindex_show_dotfiles \~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~ :Syntaxe: fancyindex_show_dotfiles [on | off] :Par défaut: fancyindex_show_dotfiles off :Contexte: http, server, location :Description: Indique s'il faut lister les fichiers précédés d'un point. La convention normale est de les cacher.
fancyindex_ignore
Syntaxe
fancyindex_ignore string1 [string2 [... stringN]]
Par défaut
Aucun par défaut.
Contexte
http, server, location
Description
Spécifie une liste de noms de fichiers qui ne seront pas affichés dans les listes générées. Si Nginx a été construit avec le support PCRE, les chaînes sont interprétées comme des expressions régulières.
fancyindex_hide_symlinks
Syntaxe
fancyindex_hide_symlinks [on | off]
Par défaut
fancyindex_hide_symlinks off
Contexte
http, server, location
Description
Lorsqu'il est activé, les listes générées ne contiendront pas de liens symboliques.
fancyindex_hide_parent_dir \~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~ :Syntaxe: fancyindex_hide_parent_dir [on | off] :Par défaut: fancyindex_hide_parent_dir off :Contexte: http, server, location :Description: Lorsqu'il est activé, il ne montrera pas le répertoire parent.
fancyindex_localtime
Syntaxe
fancyindex_localtime [on | off]
Par défaut
fancyindex_localtime off
Contexte
http, server, location
Description
Active l'affichage des heures de fichiers en heure locale. Par défaut, c'est "off" (heure GMT).
fancyindex_time_format
Syntaxe
fancyindex_time_format string
Par défaut
fancyindex_time_format "%Y-%b-%d %H:%M"
Contexte
http, server, location
Description
Chaîne de format utilisée pour les horodatages. Les spécificateurs de format sont un sous-ensemble de ceux pris en charge par la fonction strftime, et le comportement est indépendant de la locale (par exemple, les noms de jour et de mois sont toujours en anglais). Les formats pris en charge sont :
%a: Nom abrégé du jour de la semaine.%A: Nom complet du jour de la semaine.%b: Nom abrégé du mois.%B: Nom complet du mois.%d: Jour du mois sous forme de nombre décimal (plage 01 à 31).%e: Comme%d, le jour du mois sous forme de nombre décimal, mais un zéro initial est remplacé par un espace.%F: Équivalent à%Y-%m-%d(le format de date ISO 8601).%H: Heure sous forme de nombre décimal utilisant une horloge de 24 heures (plage 00 à 23).%I: Heure sous forme de nombre décimal utilisant une horloge de 12 heures (plage 01 à 12).%k: Heure (horloge de 24 heures) sous forme de nombre décimal (plage 0 à 23) ; les chiffres uniques sont précédés d'un espace.%l: Heure (horloge de 12 heures) sous forme de nombre décimal (plage 1 à 12) ; les chiffres uniques sont précédés d'un espace.%m: Mois sous forme de nombre décimal (plage 01 à 12).%M: Minute sous forme de nombre décimal (plage 00 à 59).%p: Soit "AM" soit "PM" selon la valeur horaire donnée.%P: Comme%pmais en minuscules : "am" ou "pm".%r: Heure en notation a.m. ou p.m. Équivalent à%I:%M:%S %p.%R: Heure en notation 24 heures (%H:%M).%S: Seconde sous forme de nombre décimal (plage 00 à 60).%T: Heure en notation 24 heures (%H:%M:%S).%u: Jour de la semaine sous forme décimale, plage 1 à 7, lundi étant 1.%w: Jour de la semaine sous forme décimale, plage 0 à 6, lundi étant 0.%y: Année sous forme de nombre décimal sans siècle (plage 00 à 99).%Y: Année sous forme de nombre décimal incluant le siècle.
GitHub
Vous pouvez trouver des conseils de configuration supplémentaires et de la documentation pour ce module dans le dépôt GitHub pour nginx-module-fancyindex.