Apache 2.2.4 a výpis adresára bez indexového súboru - mod_autoindex.

V prvom rade si povieme niečo o module mod_dir, ktorý je súčasťou v každej štandardnej distribúcii. Pokiaľ sa potrebujete dostať na URL napr. http://www.example.org/dir/index.html , napíšete URL v tvare http://www.example.org/dir a mod_dir sa postará o to aby bola vrátená stránka, o ktorú Vám v skutočnosti ide, teda, http://www.example.org/dir/index.html, ale bez index.html.

Mod sa stará o 2 veci a to:

1. presmeruje a pridá lomítko (/) na koniec URL, bez mod_dir by bola táto požiadavka neplatná a vyvolala by chybu 404 Not Found
2. vyhľadá a predá súbor, ktorý je definovaný ako indexový súbor adresára a robí sa to pomocou direktívy

DirectoryIndex index.html index.html.var index.htm index.php

v súbore httpd.conf. Priorita je zľava do prava. Typ súboru .var je indexová stránka, ktorá umožňuje serveru predať indexovú stránku podľa jazyka nastaveného v prehliadači klienta.

V prípade, že žiadny indexový súbor v adresári http://www.example.org/dir/ neexistuje, použije server mod_autoindex. Tento mod vytvára výpis súborov v adresári. Pre tento stav, ale musia existovať podmienky a to, že je povolená direktíva Options Indexes v httpd.conf, alebo v .htaccess (pre použitie .htaccess musí byť povolená direktívou AllowOverride All).

Príklad 1

Pre základný výpis dopíšte do konfigurácie Vašeho hlavného servera tento riadok:

Options Indexes
#zapína jednoduchý výpis adresára, obr. 1

Pre vypnutie vymažte riadok alebo napíšte:

Options –Indexes
#vypína jednoduchý výpis adresára a vyvolá chybu 403, obr. 2

Náš prvý príklad nám demonštroval základnú vlastnosť mod_autoindex.

V ďalšom kole sa pozrieme bližšie na možnosti indexovania a voľby.

IndexOptions Directive a konfiguračné voľby

IndexOptions sa používa na najrôznejšie nastavenie, ako je napr. veľkosť ikon, pekný výpis (tzv. FancyIndexing), použitie HTML tabulky na výpis adresára, zakazovanie rôznych zobrazení, použitie CSS, atd. Pre použitie tejto direktívy a následného použitia volieb musíte dávať do jedného riadku.

Príklad 2

Options Indexes
IndexOptions FancyIndexing FoldersFirst SuppressDescription
# táto voľba nám zapne FancyIndexing (pekný výpis), určí nám, že podadresáre sa budú vypisovať ako prvé a zakáže stĺpec s popisom. obr. 3

Ostatné direktívy IndexOptions:

DescriptionWidth=[n *] (Apache 2.0.23 and later)|
- definuje veľkosť stĺpca popisu súboru, kde n je veľkosť a * určí potrebnú min. veľkosť

FancyIndexing
- zapína pekné výpisy

FoldersFirst (Apache 2.0.23 and later)
- vypisuje najskôr podadresáre, potom súbory

HTMLTable (Experimental, Apache 2.0.23 and later)
- na výpis adresára sa použije HTML tabuľka, v starších prehliadačoch nemusí fungovať.

IconsAreLinks
- ikony budú robiť odkaz na súbor

IconHeight[=pixels]
- nastaví šírku ikony

IconWidth[=pixels]
- nastaví výšku ikony

IgnoreCase
- radenie súborov bude case-insensitive

IgnoreClient
- ignoruje premenné od klienta, napr. radenie výpisu sĺpcov a radiace odkazy, Name Last modified Size Description, prestanú byť odkazmi

NameWidth=[n *]|
- definuje veľkosť stĺpca mena súboru, kde [n] je veľkosť a [*] určí potrebnú min. veľkosť

ScanHTMLTitles
- vyhľadá popis k súboru z elementu <title>

ShowForbidden
- zobrazí súbory, ktoré sú normálne skryté

SuppressColumnSorting
- radiace odkazy, Name Last modified Size Description, prestanú byť odkazmi, ale stále je možnosť využiť vlastné radenie

SuppressDescription
- zakáže stĺpec s popisom

SuppressHTMLPreamble
- zakáže HTML formátovanie pomocou elementov <html>, <head> atď.

SuppressIcon (Apache 2.0.23 and later)
- zakáže zobrazenie ikon vo výpise adresára

SuppressLastModified
- zakáže zobrazenie stĺpca s dátumom poslednej úpravy

SuppressRules (Apache 2.0.23 and later)
- zakáže zobrazenie horizontálnych čiar vo výpise adresára, <hr> element

SuppressSize
- zakáže zobrazenie stĺpca s veľkosťou súboru

TrackModified (Apache 2.0.23 and later)
- vracia dátum poslednej úpravy súboru a ETag v hlavičke odpovedi. (HTTP header)

VersionSort (Apache 2.0a3 and later)
- zoradí súbory podľa čísla verzie v prirodzenom poradí
foo- 1.1.0.9
foo- 1.1.0.12

Autoindex Request Query Arguments

Táto direktíva(ona to nieje ani tak direktíva, ako vlastnosť) nám zjednodušuje použitie formátovania a radenia výpisu cez požiadavky klienta.

napr.:
http://www.example.org/fancyindexing/?C=N;O=D
nám zoradí podľa mena súboru Zostupne (Z-A)

C=N - radenie adresára podľa mena súboru
C=M - radenie adresára podľa dátum poslednej úpravy súboru, potom meno súboru
C=S - radenie adresára podľa veľkosti, potom meno súboru
C=D - radenie adresára podľa popisu, potom meno súboru

O=A - radenie výpisu Vzostupne
O=D - radenie výpisu Zostupne

F=0 - formátovanie výpisu jednoduchým zoznamom (nie FancyIndexed)
F=1 - formátovanie výpisu ako FancyIndexed
F=2 - formátovanie výpisu ako HTMLTable FancyIndexed

V=0 - zakáže VersionSort
V=1 - povolí VersionSort
P=pattern – zoznam súborov danej vzorky (pattern)

Na stránkach dokumentácie je pekne spravený skript, ktorým sa ovláda formátovanie a radenie výpisu cez jednoduchý form, ktorý, pokiaľ chcete použiť, dajte ho do súboru HEADER.html, ktorý skopírujte do Vašeho adresára a do konfigurácie httpd.conf, alebo do .htaccess pridajte tieto 2 riadky (skontrolujte si najskôr súbor httpd.conf, mal by už tieto 2 riadky obsahovať, plus ReadmeName FOOTER.html, ktorý určuje, čo môže byť na spodku stránky z výpisom)

IndexIgnore HEADER.html
# ignoruje vo výpise súbor HEADER.html, môžete si dopísať ďalšie súbory, môžete použiť náhradne znaky (*.* , ~)
HeaderName HEADER.html

formulár do HEADER.html

<form action="" method="get">
Show me a <select name="F">
<option value="0"> Plain list</option>
<option value="1" selected="selected"> Fancy list</option>
<option value="2"> Table list</option>
</select>
Sorted by <select name="C">
<option value="N" selected="selected"> Name</option>
<option value="M"> Date Modified</option>
<option value="S"> Size</option>
<option value="D"> Description</option>
</select>
<select name="O">
<option value="A" selected="selected"> Ascending</option>
<option value="D"> Descending</option>
</select>
<select name="V">
<option value="0" selected="selected"> in Normal order</option>
<option value="1"> in Version order</option>
</select>
Matching <input type="text" name="P" value="*" />
<input type="submit" name="X" value="Go" />
</form>

Obrázok 4

IndexStyleSheet Directive

IndexStyleSheet "/css/style.css"
Pridáva nám podporu CSS štýlov na formátovanie výpisu.

IndexOrderDefault Directive

IndexOrderDefault Ascending Name
Nastaví počiatočný radenie pri výpise adresára.

Príklad použitia

Options Indexes
IndexOptions FancyIndexing FoldersFirst VersionSort NameWidth=* HTMLTable IgnoreCase SuppressRules
IndexStyleSheet "/style.css"

Výsledok

Oficiálna dokumentácia mod_autoindex: linka

KONIEC
dátum poslednej úpravy dokumentu: 15.júna 2007

spat na mrako.sk