fancyindex: NGINX Fancy Index Modul
Installation
Sie können dieses Modul in jeder RHEL-basierten Distribution installieren, einschließlich, aber nicht beschränkt auf:
- RedHat Enterprise Linux 7, 8, 9 und 10
- CentOS 7, 8, 9
- AlmaLinux 8, 9
- Rocky Linux 8, 9
- Amazon Linux 2 und 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
Aktivieren Sie das Modul, indem Sie Folgendes an den Anfang von /etc/nginx/nginx.conf hinzufügen:
load_module modules/ngx_http_fancyindex_module.so;
Dieses Dokument beschreibt nginx-module-fancyindex v0.6.1 veröffentlicht am 01. März 2026.
Nginx Fancy Index Modul
Das Fancy Index Modul ermöglicht die Erstellung von Dateilisten, ähnlich wie das integrierte autoindex Modul, jedoch mit einem Hauch von Stil. Dies ist möglich, da das Modul einen gewissen Grad an Anpassung des generierten Inhalts erlaubt:
- Benutzerdefinierte Kopfzeilen, entweder lokal oder remote gespeichert.
- Benutzerdefinierte Fußzeilen, entweder lokal oder remote gespeichert.
- Fügen Sie Ihre eigenen CSS-Stilregeln hinzu.
- Ermöglichen Sie die Auswahl, Elemente nach Name (Standard), Änderungszeit oder Größe zu sortieren; sowohl aufsteigend (Standard) als auch absteigend.
Dieses Modul ist dafür ausgelegt, mit Nginx, einem leistungsstarken Open-Source-Webserver, der von Igor Sysoev geschrieben wurde, zu arbeiten.
Anforderungen
CentOS, RHEL, Fedora Linux
Für Benutzer des offiziellen stabilen Nginx-Repositories ist ein zusätzliches Paket-Repository mit dynamischen Modulen verfügbar, und fancyindex ist enthalten.
Installieren Sie die Repository-Konfiguration und dann das Modulpaket:
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install nginx-module-fancyindex
Laden Sie dann das Modul in /etc/nginx/nginx.conf mit:
load_module "modules/ngx_http_fancyindex_module.so";
macOS
Benutzer können Nginx auf macOS mit MacPorts installieren; fancyindex ist enthalten:
sudo port install nginx
Andere Plattformen
In den meisten anderen Fällen benötigen Sie die Quellen für Nginx. Jede Version ab der 0.8-Serie sollte funktionieren.
Um die Direktiven fancyindex_header_ und fancyindex_footer_ zu verwenden, benötigen Sie auch das in Nginx integrierte ngx_http_addition_module.
Bauen
-
Entpacken Sie die Nginx Quellen:
$ gunzip -c nginx-?.?.?.tar.gz | tar -xvf - -
Entpacken Sie die Quellen für das Fancy Indexing Modul:
$ gunzip -c nginx-fancyindex-?.?.?.tar.gz | tar -xvf - -
Wechseln Sie in das Verzeichnis, das die Nginx Quellen enthält, führen Sie das Konfigurationsskript mit den gewünschten Optionen aus und stellen Sie sicher, dass Sie ein
--add-moduleFlag angeben, das auf das Verzeichnis verweist, das die Quellen des Fancy Indexing Moduls enthält:$ cd nginx-?.?.? $ ./configure --add-module=../nginx-fancyindex-?.?.? \ [--with-http_addition_module] [zusätzliche gewünschte Optionen]Seit Version 0.4.0 kann das Modul auch als dynamisches Modul gebaut werden, indem Sie stattdessen
--add-dynamic-module=…verwenden undload_module "modules/ngx_http_fancyindex_module.so";in der Konfigurationsdatei. -
Bauen und installieren Sie die Software:
$ makeUnd dann, als
root:# make install -
Konfigurieren Sie Nginx mit den Konfigurationsdirektiven des Moduls.
Beispiel
Sie können den standardmäßigen integrierten Stil testen, indem Sie die folgenden Zeilen in einen server-Abschnitt in Ihrer Nginx Konfigurationsdatei hinzufügen:
location / {
fancyindex on; # Aktivieren Sie Fancy-Index.
fancyindex_exact_size off; # Geben Sie menschenlesbare Dateigrößen aus.
}
Themen
Die folgenden Themen demonstrieren den Grad der Anpassung, der mit dem Modul erreicht werden kann:
- Theme von @TheInsomniac. Verwendet benutzerdefinierte Kopf- und Fußzeile.
- Theme von @Naereen. Verwendet benutzerdefinierte Kopf- und Fußzeile. Die Kopfzeile enthält ein Suchfeld, um nach Dateinamen mit JavaScript zu filtern.
- Theme von @fraoustin. Responsives Thema mit Material Design-Elementen.
- Theme von @alehaa. Einfaches, flaches Thema basierend auf Bootstrap 4 und FontAwesome.
Direktiven
fancyindex
Syntax
fancyindex [on | off]
Standard
fancyindex off
Kontext
http, server, location
Beschreibung
Aktiviert oder deaktiviert die fancy Verzeichnisindizes.
fancyindex_default_sort
Syntax
fancyindex_default_sort [name | size | date | name_desc | size_desc | date_desc]
Standard
fancyindex_default_sort name
Kontext
http, server, location
Beschreibung
Definiert das Standard-Sortierkriterium.
fancyindex_case_sensitive
Syntax
fancyindex_case_sensitive [on | off]
Standard
fancyindex_case_sensitive on
Kontext
http, server, location
Beschreibung
Wenn aktiviert (Standard-Einstellung), wird die Sortierung nach Namen groß-/kleinschreibungssensitiv sein. Wenn deaktiviert, wird die Groß-/Kleinschreibung bei der Sortierung nach Namen ignoriert.
fancyindex_directories_first
Syntax
fancyindex_directories_first [on | off]
Standard
fancyindex_directories_first on
Kontext
http, server, location
Beschreibung
Wenn aktiviert (Standard-Einstellung), gruppiert es Verzeichnisse zusammen und sortiert sie vor allen regulären Dateien. Wenn deaktiviert, werden Verzeichnisse zusammen mit Dateien sortiert.
fancyindex_css_href
Syntax
fancyindex_css_href uri
Standard
fancyindex_css_href ""
Kontext
http, server, location
Beschreibung
Ermöglicht das Einfügen eines Links zu einem CSS-Stilblatt in den generierten Listen. Der angegebene uri-Parameter wird unverändert in ein <link> HTML-Tag eingefügt. Der Link wird nach den integrierten CSS-Regeln eingefügt, sodass Sie die Standardstile überschreiben können.
fancyindex_exact_size
Syntax
fancyindex_exact_size [on | off]
Standard
fancyindex_exact_size on
Kontext
http, server, location
Beschreibung
Definiert, wie Dateigrößen in der Verzeichnisliste dargestellt werden: entweder genau oder gerundet auf das Kilobyte, Megabyte und Gigabyte.
fancyindex_footer
Syntax
fancyindex_footer path [subrequest | local]
Standard
fancyindex_footer ""
Kontext
http, server, location
Beschreibung
Gibt an, welche Datei am Ende der Verzeichnislisten eingefügt werden soll. Wenn auf einen leeren String gesetzt, wird die standardmäßige Fußzeile, die vom Modul bereitgestellt wird, gesendet. Der optionale Parameter gibt an, ob der path als URI behandelt werden soll, die mit einem subrequest (Standard) geladen wird, oder ob er sich auf eine local Datei bezieht.
Hinweis
Die Verwendung dieser Direktive erfordert das in Nginx integrierte ngx_http_addition_module.
Warnung
Beim Einfügen einer benutzerdefinierten Kopf-/Fußzeile wird ein Subrequest ausgegeben, sodass potenziell jede URL als Quelle verwendet werden kann. Obwohl es mit externen URLs funktioniert, wird nur die Verwendung interner URLs unterstützt. Externe URLs sind völlig ungetestet und deren Verwendung wird Nginx blockieren, während auf den Abschluss des Subrequests gewartet wird. Wenn Sie das Gefühl haben, dass eine externe Kopf-/Fußzeile für Sie ein Muss ist, lassen Sie es mich bitte wissen.
fancyindex_header
Syntax
fancyindex_header path [subrequest | local]
Standard
fancyindex_header ""
Kontext
http, server, location
Beschreibung
Gibt an, welche Datei am Anfang der Verzeichnislisten eingefügt werden soll. Wenn auf einen leeren String gesetzt, wird die standardmäßige Kopfzeile, die vom Modul bereitgestellt wird, gesendet. Der optionale Parameter gibt an, ob der path als URI behandelt werden soll, die mit einem subrequest (Standard) geladen wird, oder ob er sich auf eine local Datei bezieht.
Hinweis
Die Verwendung dieser Direktive erfordert das in Nginx integrierte ngx_http_addition_module.
fancyindex_show_path
Syntax
fancyindex_show_path [on | off]
Standard
fancyindex_show_path on
Kontext
http, server, location
Beschreibung
Ob der Pfad und das schließende -Tag nach der Kopfzeile ausgegeben werden sollen oder nicht. Dies ist nützlich, wenn Sie die Pfadanzeige beispielsweise mit einem PHP-Skript behandeln möchten.
Warnung
Diese Direktive kann nur deaktiviert werden, wenn eine benutzerdefinierte Kopfzeile mit fancyindex_header bereitgestellt wird.
fancyindex_show_dotfiles \~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~ :Syntax: fancyindex_show_dotfiles [on | off] :Standard: fancyindex_show_dotfiles off :Kontext: http, server, location :Beschreibung: Ob Dateien aufgelistet werden sollen, die mit einem Punkt beginnen. Die normale Konvention ist, diese zu verbergen.
fancyindex_ignore
Syntax
fancyindex_ignore string1 [string2 [... stringN]]
Standard
Kein Standard.
Kontext
http, server, location
Beschreibung
Gibt eine Liste von Dateinamen an, die in den generierten Listen nicht angezeigt werden. Wenn Nginx mit PCRE-Unterstützung kompiliert wurde, werden die Strings als reguläre Ausdrücke interpretiert.
fancyindex_hide_symlinks
Syntax
fancyindex_hide_symlinks [on | off]
Standard
fancyindex_hide_symlinks off
Kontext
http, server, location
Beschreibung
Wenn aktiviert, enthalten die generierten Listen keine symbolischen Links.
fancyindex_hide_parent_dir \~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~ :Syntax: fancyindex_hide_parent_dir [on | off] :Standard: fancyindex_hide_parent_dir off :Kontext: http, server, location :Beschreibung: Wenn aktiviert, wird das übergeordnete Verzeichnis nicht angezeigt.
fancyindex_localtime
Syntax
fancyindex_localtime [on | off]
Standard
fancyindex_localtime off
Kontext
http, server, location
Beschreibung
Aktiviert die Anzeige von Dateizeiten als lokale Zeit. Standard ist "aus" (GMT-Zeit).
fancyindex_time_format
Syntax
fancyindex_time_format string
Standard
fancyindex_time_format "%Y-%b-%d %H:%M"
Kontext
http, server, location
Beschreibung
Formatzeichenfolge, die für Zeitstempel verwendet wird. Die Formatbezeichner sind eine Teilmenge der von der strftime Funktion unterstützten und das Verhalten ist lokal unabhängig (zum Beispiel sind Tag- und Monatsnamen immer auf Englisch). Die unterstützten Formate sind:
%a: Abgekürzter Name des Wochentags.%A: Vollständiger Name des Wochentags.%b: Abgekürzter Monatsname.%B: Vollständiger Monatsname.%d: Tag des Monats als Dezimalzahl (Bereich 01 bis 31).%e: Wie%d, der Tag des Monats als Dezimalzahl, aber eine führende Null wird durch ein Leerzeichen ersetzt.%F: Entspricht%Y-%m-%d(dem ISO 8601-Datumsformat).%H: Stunde als Dezimalzahl unter Verwendung einer 24-Stunden-Uhr (Bereich 00 bis 23).%I: Stunde als Dezimalzahl unter Verwendung einer 12-Stunden-Uhr (Bereich 01 bis 12).%k: Stunde (24-Stunden-Uhr) als Dezimalzahl (Bereich 0 bis 23); einstellige Zahlen werden durch ein Leerzeichen vorangestellt.%l: Stunde (12-Stunden-Uhr) als Dezimalzahl (Bereich 1 bis 12); einstellige Zahlen werden durch ein Leerzeichen vorangestellt.%m: Monat als Dezimalzahl (Bereich 01 bis 12).%M: Minute als Dezimalzahl (Bereich 00 bis 59).%p: Entweder "AM" oder "PM" entsprechend dem angegebenen Zeitwert.%P: Wie%p, aber in Kleinbuchstaben: "am" oder "pm".%r: Zeit in a.m. oder p.m. Notation. Entspricht%I:%M:%S %p.%R: Zeit in 24-Stunden-Notation (%H:%M).%S: Sekunde als Dezimalzahl (Bereich 00 bis 60).%T: Zeit in 24-Stunden-Notation (%H:%M:%S).%u: Tag der Woche als Dezimalzahl, Bereich 1 bis 7, Montag ist 1.%w: Tag der Woche als Dezimalzahl, Bereich 0 bis 6, Montag ist 0.%y: Jahr als Dezimalzahl ohne Jahrhundert (Bereich 00 bis 99).%Y: Jahr als Dezimalzahl einschließlich des Jahrhunderts.
GitHub
Sie finden möglicherweise zusätzliche Konfigurationstipps und Dokumentationen für dieses Modul im GitHub-Repository für nginx-module-fancyindex.