Konfigurace modulu mod_html

Pro správnou funkci modulu mod_html musí být správně nakonfigurován také modul mod_mime, a povoleno Options Multiview. Příklad konfigurace je uveden na konci textu. Modul explicitně zakazuje ukládat do proxy cache dokumenty, které jsou získány automatickým výběrem varianty a nejsou přenášeny protokolem HTTP verze 1.1. Parametr CacheNegotiatedDocs modulu mod_negotiation by tedy měl být nastaven.

Charset

Syntax: Charset charset definition-file
Context: server config
Module: mod_html
Compatibility: >= 2.0

Definice kódu charset v definičním souboru definition-file. Tento parametr nahrazuje pevné převodní tabulky, které byly ve starších verzích modulu zakompilovány. Pro funkci modulu musí být definovány kódy Unicode-1-1 a ISO-8859-1. Ostatní kódy mohou být definovány dle libosti. Definiční soubory jsou převzaty z balíku převodních programů trans113. Použitá jména znaků odpovídají standardu Unicode (Unicode 2.0, ISBN 0-201-96623-9). Pro doplnění libovolného kódu stačí doplnit definici kódu v konfiguraci serveru:

Charset unicode-1-1 charsets/unicode
Charset iso-8859-1 charsets/iso8859.1
Charset iso-8859-2 charsets/iso8859.2
Převodní tabulky pro převod mezi libovolnou dvojicí nakonfigurovaných kódů jsou generovány dynamicky dle potřeby.

LanguageCharset

Syntax: LanguageCharset mime-lang charset
Context: server config, virtual host, directory, .htaccess
Override: FileInfo
Module: mod_html
Compatibility: >= 1.0

Nastavení implicitního kódu charset pro dokumenty v jazyce mime-lang. Jazyk musí být definován pomocí parametru AddLanguage. Implicitní kód pro daný jazyk lze definovat jak v srm.conf, tak v souboru .htaccess lokálně pro daný adresář. Pokud potřebujete ukládat dokumenty v různých kódech, stačí v patřičném adresáři vytvořit soubor se jménem .htaccess s tímto obsahem:

LanguageCharset cs ISO-8859-2 # pro soubory v jazyce cs bude kód ...
V konfiguraci serveru musí být samozřejmě povolena interpretace parametrů v .htaccess pro daný podstrom (viz AllowOverride FileInfo).

Poznámka: Identifikátor jazyka nemusí být totožný s příponou jména souboru, například pro jazyk "cs" může být nastavena parametrem AddLanguage přípona ".cz".

DefaultCharset

Syntax: DefaultCharset charset
Default: DefaultCharset ISO-8859-1
Context: server config, virtual host, directory, .htaccess
Override: FileInfo
Module: mod_html
Compatibility: >= 1.0

Nastavení implicitního kódu pro dokumenty v jazyce, pro který není nastaven implicitní kód parametrem LanguageCharset. Pokud není tento parametr nastaven, pak dokumenty v jazycích, které nemají definován implicitní kód, jsou v kódu ISO-8859-1.

DefaultLanguage

Syntax: DefaultLanguage language
Default: DefaultLanguage unknown
Context: server config, virtual host, directory, .htaccess
Override: FileInfo
Module: mod_html
Compatibility: >= 3.0

Nastavení implicitního jazyka pro dokumenty bez jazykové přípony. Pokud není tento parametr nastaven, pak dokumenty bez jazykové přípony (*.html) nemají určen jazyk a server pro ně negeneruje hlavičku Content-Language. Nastavení má také vliv na formát výpisu časových údajů vloženými příkazy. V konfiguraci serveru musí být samozřejmě povolena interpretace parametrů v .htaccess pro daný podstrom (viz AllowOverride FileInfo).

Příklad:

DefaultLanguage cs

LanguageConfig

Syntax: LanguageConfig mime-lang timefmt [errorstring]
Context: server config, virtual host, directory, .htaccess
Override: FileInfo
Module: mod_html
Compatibility: >= 2.0

Nastavení formátu časových údajů timefmt a textu chybového hlášení timefmt při zpracování vnořených příkazů pro jazyk mime-lang Formát časového údaje je zadáván ve formátu strftime(). Příklad pro české národní prostředí:

LanguageConfig cs "%e. %B %Y" "[při zpracování vloženého příkazu nastala chyba]"
Text chybového hlášení je vložen při chybě ve vloženém příkazu do stránky na místo vloženého příkazu. Oba parametry musí být zadány v uvozovkách, protože obsahují mezery. Text chybového hlášení nemusí být zadán. Pokud není pro daný jazyk jazyk zadán formát časových údajů nebo text chybového hlášení, je použito implicitního nastavení pro angličtinu:
LanguageConfig en "%B %e, %Y" "[an error occured while processing this directive]"

Poznámka: Identifikátor jazyka nemusí být totožný s příponou jména souboru, například pro jazyk "cs" může být nastavena parametrem AddLanguage přípona ".cz".

XBitHack

Syntax: XBitHack status
Default: XBitHack off
Context: server config, virtual host, directory, .htaccess
Override: Options
Module: mod_html
Compatibility: >= 1.5

Nastavení zpracování vložených příkazů pro server. Může mít hodnotu Off, On, Full nebo FullOff:

Off
Vložené příkazy pro server jsou ignorovány.
On
Vložené příkazy jsou interpretovány pouze pro soubory, které mají nastaveno právo proveditelnosti pro majitele (chmod u+x soubor).
Full
Stejně jako On a navíc je testováno právo proveditelnosti pro skupinu (chmod g+x soubor). Pokud je povoleno, může být soubor uložen do proxy cache.
FullOff
Stejně jako Full, ale pro všechny soubory. Tedy vložené příkazy jsou interpretovány vždy a výsledné soubory mohou být vždy ukládány do proxy cache (doporučená hodnota).
Protože modul mod_html vždy analyzuje obsah dokumentu, není vyhledávání vložených příkazů žádnou zátěží navíc. Nemá tedy smysl (kromě bezpečnostních důvodů) vypínat zpracování vložených příkazů nebo jej podmiňovat právem proveditelnosti souboru.

UseCache

Syntax: UseCache on/off
Default: UseCache off
Context: server config, virtual host, directory, .htaccess
Override: Options
Module: mod_html
Compatibility: >= 4

Parametr zapíná ukládání vygenerovaných mutací dokumentů do lokální cache. Pokud je při příštím požadavku na stejný dokument požadovaná jazyková a kódová mutace dokumentu již vygenerovaná a nezměnil se zdrojový dokument (jeho čas modifikace je starší než u souboru v cache), pak se použije dokument z cache. Lokální cache je tvořena adresářem .cache ve stejném adresáři jako je dokument. Tento adresář musí být předem vytvořen a musí mít nastavena práva tak, aby v něm mohl proces Web serveru vytvářet soubory. Modul sleduje použití vložených příkazů pro server a dokumenty dynamického charakteru (#exec, apod.) do cache neukládá. Implicitně je tento parametr vypnutý. Parametr je vhodné zapnout pro adresáře s často přistupovanými dokumenty.

Poznámka: Jména souborů v cache mají příponu tvořenou jedním nebo dvěma jmény jazyka a jedním jménem kódu. Nejedná se o chybu, jsou to skutečně různé verze vygenerovaných dokumentů.

UseMeta

Syntax: UseMeta on/off
Default: UseMeta off
Context: server config, virtual host, directory, .htaccess
Override: Options
Module: mod_html
Compatibility: >= 4

Pokud je parametr UseMeta zapnutý, interpretuje modul hlavičku META HTTP-EQUIV a nastaví podle ní zdrojový kód dokumentu. Počáteční zdrojový kód je dán konfigurací modulu (podle jazykové přípony souboru, implicitního jazyka a kódu). Implicitně je tento parametry vypnutý, protože uživatelé často překódují dokument do jiného kódu, ale nenamáhají se opravit hlavičku META.

Modul mod_html v každém případě opraví hlavičku META podle cílového kódu, ve kterém dokument zasílá.

RemoveCharset

Syntax: RemoveCharset on/off
Default: RemoveCharset off
Context: server config, virtual host, directory, .htaccess
Override: Options
Module: mod_html
Compatibility: >= 4

Pokud je parametr RemoveCharset zapnutý, modul ignoruje explicitní přípony určující kód dokumentu ve všech odkazech uvnitř dokumentu. Pokud modulu generuje dokument bez explicitního přepnutí kódu, pak všechny explicitní kódové přípony URL vyjme, pokud s explicitním přepnutím kódu, pak vloží do všech URL danou příponu bez ohledu na to, zda tam nějaká byla. Implicitně je tento parametr vypnutý a explicitní kódové přípony v odkazech jsou ponechány.

Tento parametr by měl být vypnutý pro adresář CGI skriptů a pro dokumenty, které dovolují záměrnou změnu kódu. Naopak je vhodné tento parametr zapnout pro uživatelské adresáře, protože se často stává, že uživatel místo aby vzal stránku ze serveru přes FTP, Sambu, NFS, či jinak, si ji vezme z Web serveru a začne ji opravovat. Přitom se mu samozřejmě do všech odkazů vygenerují explicitní přípony se jménem zrovna zvoleného kódu a takovýto dokument uživatel pak uloží zpět (tentokrát již kupodivu přes FTP, Sambu, NFS, či jinak) a nestačí se divit.

ModHTMLServer

Syntax: ModHTMLServer hostname [port]
Context: server config
Module: mod_html
Compatibility: >= 2.0

Přidání adresy WWW serveru s modulem mod_html do seznamu. Do všech hypertextových odkazů vedoucích na tyto servery je je přidáván postfix jazyk.kód pro zachování kontextu vybraného jazyka a kódu. Pro všechny ostatní externí adresy není postfix generován.

Upozornění: Adresa lokálního serveru a všech virtuálních serverů je u starších verzí do 3.x včetně přidána automaticky. Od verze 4.0 musí být přidány všechny virtuální servery v konfiguraci modulu příkazem ModHtmlServer.

ModHTMLFoe

Syntax: ModHTMLFoe agent
Context: server config
Module: mod_html
Compatibility: >= 4.15

Pro klienty identifikované hlavičkou User-Agent začínající řetězcem agent nebude prováděno zpracování URL s explicitně doplněným kódem. Předpokládá také odpovídající úpravu v programu generujícím explicitní odkazy s doplněným kódem pro přepnutí zobrazovaného kódu (program codepage.c).

Příklad:

#
# ModHTMLFoe user_agent
#
ModHTMLFoe "Mozilla/5.0 (Slurp/cat; slurp@inktomi.com"
ModHTMLFoe "Googlebot/"
ModHTMLFoe "Scooter/"
ModHTMLFoe "FAST-WebCrawler/"

DomainAcceptLanguage

Syntax: DomainAcceptLanguage domain accept-language
Context: server config
Module: mod_html
Compatibility: >= 2.0

Nastavení implicitní hlavičky Accept-Language pro doménu nejvyšší úrovně. Použije se pouze v případě, že klient tuto hlavičku nezašle. Podmínkou je úspěšné získání doménového jména - klient musí mít inverzní záznam v DNS. Pokud nelze zjistit doménové jméno klienta nebo není implicitní hlavička pro danou doménu definována, pak je použita priorita jazyků pro pseudodoménu "unknown". Pokud klient zašle hlavičku Accept-Language, postupuje se podle této hlavičky. Příklad nastavení priority pro doménu cz:

DomainAcceptLanguage cz cs,sk;q=0.9;en;q=0.8,de;q=0.5
První parametr cz je jméno domény (např. www.fit.vutbr.cz). Druhý parametr musí být zadán bez mezer nebo musí být v uvozovkách. Obsahuje seznam akceptovaných jazyků s případnou hodnotou preference (středník a reálné číslo v rozsahu 0 až 1.0). Pokud není preference zapsána, uvažuje se 1.0 (maximální hodnota). Pořadí má vliv pouze v případě stejných hodnot preferencí.

Poznámka: Pro správnou funkci musí být povolen u serverů Apache verze >= 1.1 parametr:

HostNameLookups on

DomainAcceptCharset

Syntax: DomainAcceptCharset domain charset [user_agent]
Context: server config
Module: mod_html
Compatibility: >= 2.0

Nastavení implicitního zvoleného kódu (Accept-Charset) pro doménu nejvyšší úrovně. Nastavení může být dále ovlivněno řetězcem z hlavičky User-Agent, kterou zasílá každý prohlížeč. Je použita vždy ta definice, která je nejpřesnější, tedy u které se nalezne nejdelší stejný podřetězec User-Agent. Řetězců může být zadáno více, v tom případě má přednost ta definice, u které se srovná největší počet řetězců. Pokud je jich více, má přednost nejdelší srovnání. Pokud je jich více, uplatní se poslední (pořadí je stejné jako v konfiguraci). Při srovnávání se od verze modulu 4.0 nerozlišují malá a velká písmena. Oddělovačem řetězců je mezera. Pokud má obsahovat srovnávaný řetězec mezeru, musí být zapsán v uvozovkách. Nastavení implicitního kódu se použije pouze v případě, že klient neposílá hlavičku Accept-Charset. Příklad:

DomainAcceptCharset cz ISO-8859-2
DomainAcceptCharset cz Windows-1250 Win
DomainAcceptCharset cz ISO-8859-1 "NCSA_Mosaic" X11
Pro doménu cz jsou implicitně poskytovány dokumenty v kódu ISO-8859-2. Pokud je ale nalezen v hlavičce User-Agent řetězec "Win", je dokument poskytnut v kódu Windows-1250. Pokud je nalezen řetězec NCSA_Mosaic a současně X11, pak je dokument poskytnut v kódu ISO-8859-1. Toto nastavení se uplatní při prvním přístupu daného klienta na server. Poté už je nastavení cílového kódu (ať už implicitního nebo vybraného uživatelem) udržováno v postfixech URL. Explicitní nastavení v postfixu má vždy přednost před implicitním nastavením i před hlavičkou Accept-Charset.

Příklad konfigurace

srm.conf

#
# povolit překlad IP adres na doménová jména
#
HostNameLookups on
#
# Konfigurace modulu mod_negotation:
#
# povolit ukládání automaticky vybraných variant dokumentů do proxy cache,
# pokud to je možné
CacheNegotiatedDocs
#
# implicitní priorita jazyků, pokud je zadána hlavička Accept-Language
# neuplatní se (Pozor: pokud je definováno DomainAcceptLanguage, pak je
# Accept-Language generováno téměř vždy). 
#
LanguagePriority cs sk en fr de ru  
#
# Konfigurace modulu mod_mime:
#
# soubor s příponou .en je v jazyce en
AddLanguage en .en
AddLanguage fr .fr
AddLanguage de .de
# přípona a jazyk se mohou lišit, v URL a konfiguraci se zadává JAZYK 
AddLanguage cs .cz
AddLanguage sk .sk
#
# Konfigurace modulu mod_html:
#
# povolit vložené příkazy vždy (od 1.5)
#
XBitHack FullOff	
#
# definice kódů (od 2.0)
#
# první dvě definice musí být vždy
Charset unicode-1-1 charsets/unicode
Charset iso-8859-1 charsets/iso8859.1
Charset iso-8859-2 charsets/iso8859.2
Charset windows-1250 charsets/cp1250
#
# implicitní kód dokumentů 	
#
DefaultCharset ISO-8859-1  
#
# kód pro jazyk cs, sk, en (pro jazyk!, ne příponu)
#
LanguageCharset cs iso-8859-2  
LanguageCharset sk iso-8859-2  
LanguageCharset en iso-8859-1  
#
# Formát výpisu času a chybové zprávy
#
LanguageConfig cs "%e. %B %Y" "[při zpracování vloženého příkazu nastala chyba]"
LanguageConfig sk "%e. %B %Y" "[při zpracování vloženého příkazu nastala chyba]"
LanguageConfig en "%B %e, %Y" "[an error occured while processing inserted directive]"
#
# Nastavení implicitních jazyků pro domény (od verze 2.0)
#
DomainAcceptLanguage unknown en,cs;q=0.1
# "cz" je top level doména, "cs" je zkratka jazyka
DomainAcceptLanguage cz cs,sk;q=0.8
DomainAcceptLanguage sk sk,cs;q=0.8
DomainAcceptLanguage com en,cs;q=0.1
DomainAcceptLanguage edu en,cs;q=0.1
DomainAcceptLanguage gov en,cs;q=0.1
DomainAcceptLanguage mil en,cs;q=0.1
DomainAcceptLanguage net en,cs;q=0.1
DomainAcceptLanguage org en,cs;q=0.1
#
# Nastavení implicitního kódu pro domény a klienty (od 2.0)
#
DomainAcceptCharset cz iso-8859-2 
DomainAcceptCharset cz windows-1250 Win
DomainAcceptCharset cz windows-1250 win
DomainAcceptCharset cz iso-8859-1 "NCSA_Mosaic/2"
DomainAcceptCharset sk iso-8859-2 
DomainAcceptCharset sk windows-1250 Win
DomainAcceptCharset sk windows-1250 win
DomainAcceptCharset sk iso-8859-1 "NCSA_Mosaic/2"
#
# Známé WWW servery s modulem mod_html (od 2.0)
#
ModHTMLServer www.fit.vutbr.cz
ModHTMLServer www.stud.fit.vutbr.cz
ModHTMLServer www.su.fit.vutbr.cz

access.conf

<Directory /WWW/root> 	# podle kořene stromu dokumentů 
Options Includes MultiViews 
AllowOverride FileInfo Options	# pokud má být povoleno .htaccess
</Directory>

</Directory>
<Directory /WWW/cgi-bin> 	# podle CGI adresáře
Options ExecCGI MultiViews	# pokud mají být jazykové mutace skriptů
</Directory>

Poslední změna: 8. April 2003
Pokud máte námět na vylepšení této stránky nebo na ní naleznete chybu, zašlete dopis na adresu lampa@fit.vutbr.cz.

[ Zpět | Domácí stránka | Web server | Jazyk/Language ]