Touto direktívou definujeme meno súboru, v ktorom bude Apache hľadať externé nastavenia. Obvykle sa používa názov .htaccess, čo je v linuxe vlastne skrytý súbor (pretože mená súborov začínajúce bodkou sa defaultne nezobrazujú). Od verzie 1.3 serveru Apache je možné zadať za AccessFileName viac mien. Napríklad:
AccessFileName .htaccess
alebo
AccessFileName .htaccess .httpd_config .ext_konfig
AllowOverride
Možné parametre tejto direktívy, udávajúce čo vlastne môžeme v externej konfigurácii konkrétnej oblasti použiť, vidíme nižšie v tabuľke. Pokiaľ je ako paramete za AllowOverride uvedená iná diretíva než None, postupne sú serverom načítavané súbory .htaccess (respektíve tie, ktoré sme definovali direktívou AccessFileName) od koreňového (root) adresára až po žiadaný objekt (súbor). Príklad:
<Directory „/home/httpd/htdocs“>
AllowOverride Limit Options AuthConfig
</Directory>
Ak je požadovaný súbor napríklad /home/httpd/htdocs/fajl.htm, potom server vyhľadá a načíta všetky súbory .htaccess : /.htaccess, /home/.htaccess, /home/httpd/.htaccess, /home/httpd/htdocs/.htaccess.
Poznámka: defaultné nastavenie direktívy AllowOverride je All
Tabuľka parametrov direktívy AllowOverride
Direktíva | Parameter | Direktívy, ktoré parameter povoľuje použivať v .htaccess |
AllowOverride | AuthConfig | AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, Require,… – autorizačné direktívy |
FileInfo | AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument, LanguagePriority,… – direktívy definujúce typy súborov | |
Indexes | AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName,… – direktívy nastavujúce napríklad ikony rôznych typov súborov | |
Limit | Order, Allow, Deny | |
Options | Options, XBitHack | |
All | Nahradzuje všetky direktívy (AuthConfig, FileInfo, Indexes,… atd) | |
None | Nepovolí sa vôbec použitie súborov .htaccess |
A ako to funguje v praxi ? Malý príklad na pochopenie:
Najskôr si v súbore httpd.conf (okrem iného) zadefinujeme aj nejaké tie oblasti:
AccessFileName .htaccess
DocumentRoot „/home/httpd“
<Directory „/htdocs“>
AllowOverride All
Order Allow, Deny
Allow from All
</Directory>
<Directory „/extdocs“>
AllowOverride Limit Options
Order Allow, Deny
Allow from All
</Directory>
Ďalej vytvoríme potrebné súbory /home/httpd/htdocs/.htaccess a /home/httpd/extdocs/.htaccess, ktoré budú mať napríklad takúto jednoduchú štruktúru:
#súbor /home/httpd/htdocs/.htaccess
Options FollowSymLinks Indexes Includes ExecCGI
ErrorDocument 401 /error401.html
ErrorDocument 403 /error403.html
Order Deny, Allow
Allow from All
#súbor /home/httpd/extdocs/.htaccess
Options Includes Indexes
Order Deny, Allow
Deny from All
Allow apache.org
A sme hotoví! Pri požiadavke napríklad na súbor /home/httpd/extdocs/index.html Apache načíta všetky nájdené subory .htaccess zo všetkých adresárov, do ktorých žiadaný dokument patrí (/.htaccess, /home/.htaccess, /home/httpd/.htaccess, /home/httpd/extdocs/.htaccess) a spracuje ich rovnakým spôsobom, ako keby direktívy v nich uvedené boli zapísané priamo v súbore httpd.conf medzi tagmi <Directory> a </Directory> (v tomto prípade budú uplatnené direktívy Includes a Indexes a, samozrejme, prístup k dokumentom v tomto adresári bude umožnený iba z domény apache.org).
ErrorDocument
V príklade vyššie som použil novú direktívu ErrorDocument, o ktorej som zatiaľ nič nepovedal. ErrorDocument definuje, čo sa zobrazí užívateľovi v browseri v prípade, že daný súbor, o ktorý žiadal, neexistuje, nemá naň práva a pod., čiže vtedy, keď je generovaná chyba (napr.: 403 Forbiden – zákaz prístupu). Syntax tejto direktívy je :
ErrorDocument kód_chyby súbor
kde súbor je meno súboru, ktorý sa má zobraziť, alebo text uvedený na začiatku úvodzovkami, napr.:
ErrorDocument /zle_url.htm
alebo
ErrorDocument "Ľutujem, ale zadali ste zlé URL!
Toľko pre dnes. Z obsahu budúcej časti: pozrieme sa na pár ďaľších, potrebných direktív rôzneho zamerania a naučíme sa niečo o moduloch, ktoré sú v Apache v mnohých pípadoch nesmierne potrebné.