- chalblog - https://blog.is-a-geek.org -

Apache File-Listing mit eigenem Theme verschönern

Apache File-Listing mit eigenem Theme verschönern [1]Nachdem die Datei-Liste des Apache2 etwas in die Jahre gekommen aussieht, habe ich mich ans Werk gemacht ein Theme für den Autoindex Mod zu erstellen, welcher bei neueren Versionen meistens schon automatisch aktiviert ist. In diesem Artikel könnt ihr mein eigenes Theme herunterladen und ausserdem zeige ich euch, wie ihr dieses einbindet.

Mod aktivieren

In den meisten Fällen sollte der “mod_autoindex” schon bei der Installation aktiviert sein. Um sicher zu gehen, führt einfach den folgenden Befehl aus. Sollte der Mod schon enabled sein bekommt ihr “Module autoindex already enabled” als Rückmeldung.

sudo a2enmod autoindex

Theme herunterladen und entpacken

Das Theme laden wir direkt im “www”-Ordner heruter und entpacken es auch dort:

sudo wget /var/www/ http://blog.is-a-geek.org/downloads/autoindex_chaltheme.tar
sudo tar xvf /var/www/autoindex_chaltheme.tar

Jetzt sollte ein neuer Ordner “include” vorhanden sein und man kann das Archiv löschen.

sudo rm autoindex_chaltheme.tar

Kennt ihr die ganze Prozedur schon und wollt nur das Theme, klickt auf diesen Link: autoindex_chaltheme.tar [2]

Vorab ein Screenshot:

Apache FileListing Theme 1 [3]

Bild 1

Das Theme ist etwas konfus programmiert, ich werde den Code aber noch überarbeiten, wenn ich die Zeit dazu finde. Solltet ihr Änderungen vorgenommen haben, könnt ihr mir diese gerne zukommen lassen ;).

Theme einbinden

Dazu öffnen wir im Ordner “sites-available” den Virtualhost, in welchem wir dieses Filelisting-Theme einbinden wollen. Wenn man keine Ahnung von Virtualhosts hat, hat man wahrscheinlich auch noch keinen erstellt und man ändert die “default” Datei.

sudo nano /etc/apache2/sites-available/default

Arbeitet ihr nicht mit der “default” (oder dem Standard Documentroot) sondern mit einem Virtualhost, müsst ihr einen Alias setzen damit das Theme funktioniert. Dazu fügt man nach “DocumentRoot” folgende Zeilen ein:

DocumentRoot /euerroot/
Alias /icons/ /var/www/include/icons/
Alias /include/ /var/www/include/

Bevor die Directory-Sektion geschlossen wird, fügen wir folgenden Abschnitt ein, welcher die Header/Footer usw. Angaben enthält.

<Directory /euerdirectory/> 
.
.
.
<IfModule mod_autoindex.c>
  Options Indexes FollowSymLinks
  IndexOptions +FancyIndexing
  IndexOptions +VersionSort
  IndexOptions +HTMLTable
  IndexOptions +FoldersFirst
  IndexOptions +IconsAreLinks
  IndexOptions +IgnoreCase
  IndexOptions +SuppressDescription
  IndexOptions +SuppressHTMLPreamble
  IndexOptions +XHTML
  IndexOptions +IconWidth=16
  IndexOptions +IconHeight=16
  IndexOptions +NameWidth=*
  IndexOptions +DescriptionWidth=200
  IndexOrderDefault Descending Name
  HeaderName /include/header.html
  ReadmeName /include/footer.html
</ifModule>
</Directory>

Um bestimmte Icons für jeden Dateityp anzeigen zu lassen, müssen wir diese noch mit “AddIcon” oder “AddIconByType” angeben. Eine kleine Sammlung von Icons liegt im “include/icons/” Ordner und um diese einzubinden, kopiert die Zuweisungen in den “IfModule mod_autoindex.c” Block.

<IfModule mod_autoindex.c>
.
.
.
AddIcon /icons/type_application.png .exe .app .EXE .APP
AddIcon /icons/type_binary.png .bin .hqx .uu .BIN .HQX .UU
AddIcon /icons/type_box.png .tar .tgz .tbz .tbz2 bundle .rar .TAR .TGZ .TBZ .TBZ2
AddIcon /icons/type_rar.png .rar .RAR
AddIcon /icons/type_html.png .htm .html .HTM .HTML
AddIcon /icons/type_code.png .htx .htmls .dhtml .phtml .shtml .inc .ssi .c .cc .css .h .rb .js .rb .pl .py .sh .shar .csh .ksh .tcl .as
AddIcon /icons/type_database.png .db .sqlite
AddIcon /icons/type_disc.png .iso .image
AddIcon /icons/type_document.png .ttf
AddIcon /icons/type_excel.png .xlsx .xls .xlm .xlt .xla .xlb .xld .xlk .xll .xlv .xlw
AddIcon /icons/type_flash.png .flv
AddIcon /icons/type_illustrator.png .ai .eps .epsf .epsi
AddIcon /icons/type_pdf.png .pdf
AddIcon /icons/type_php.png .php .phps .php5 .php3 .php4 .phtm
AddIcon /icons/type_photoshop.png .psd
AddIcon /icons/type_monitor.png .ps
AddIcon /icons/type_powerpoint.png .ppt .pptx .ppz .pot .pwz .ppa .pps .pow
AddIcon /icons/type_swf.png .swf
AddIcon /icons/type_text.png .tex .dvi
AddIcon /icons/type_vcf.png .vcf .vcard
AddIcon /icons/type_word.png .doc .docx
AddIcon /icons/type_zip.png .Z .z .tgz .gz .zip
AddIcon /icons/type_globe.png .wrl .wrl.gz .vrm .vrml .iv
AddIcon /icons/type_android.gif .apk .APK

AddIconByType (TXT,/icons/type_text.png) text/*
AddIconByType (IMG,/icons/type_image.png) image/*
AddIconByType (SND,/icons/type_audio.png) audio/*
AddIconByType (VID,/icons/type_video.png) video/*
AddIconByEncoding (CMP,/icons/type_box.png) x-compress x-gzip

AddIcon /icons/back.png ..
AddIcon /icons/information.png README INSTALL
AddIcon /icons/type_folder.png ^^DIRECTORY^^
AddIcon /icons/blank.png ^^BLANKICON^^

DefaultIcon /icons/type_document.png

</ifModule>

Die Modifikationen werden erst nach einem Apache-Neustart übernommen:

sudo service apache2 restart

Die ganze Geschichte kann natürlich auch mit einer “.htaccess” Datei analog dazu realisiert werden. Für SSL ist die “default-SSL” Datei oder die zugehörige Sektion im Virtualhostfile zu bearbeiten.

Kommt wirklich jemand auf die Idee und will mir diverse Änderungen schicken, sendet mir diese bitte als Archiv welches ihr bei “Artikel einsenden [4]” anhängen könnt.

 

Viel Spaß beim Dateistöbern!