Malý průvodce konfigurací Apache (4)

23. 4. 2001
Doba čtení: 3 minuty

Sdílet

Minule som nenápadne načrtol tému použitia externých konfigurácií oblastí v oddelených súboroch obvykle nazvaných .htaccess. Dnes si o tejto alternatívnej možnosti nastavovania povieme viac.
AccessFileName

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/htd­ocs“>
   AllowOverride Limit Options AuthConfig
</Directory>


Ak je požadovaný súbor napríklad /home/httpd/htd­ocs/fajl.htm, potom server vyhľadá a načíta všetky súbory .htaccess : /.htaccess, /home/.htaccess, /home/httpd/.htac­cess, /home/httpd/htd­ocs/.htaccess.
Poznámka: defaultné nastavenie direktívy AllowOverride je All


Tabuľka parametrov direktívy AllowOverride

Tabulka č. 116
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, LanguagePriori­ty,… – direktívy definujúce typy súborov
Indexes AddDescription, AddIcon, AddIconByEnco­ding, 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/htd­ocs/.htaccess a /home/httpd/ex­tdocs/.htacces­s, ktoré budú mať napríklad takúto jednoduchú štruktúru:

#súbor /home/httpd/htd­ocs/.htaccess
Options FollowSymLinks Indexes Includes ExecCGI
ErrorDocument 401 /error401.html
ErrorDocument 403 /error403.html
Order Deny, Allow
Allow from All


#súbor /home/httpd/ex­tdocs/.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/ex­tdocs/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/.htac­cess, /home/httpd/ex­tdocs/.htacces­s) 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é.