Předchozí díl ...

Zakázání výpisu obsahu adresářů

V případě, že uživatel do prohlížeče zadá url adresu a na dané adrese neexistuje výchozí soubor (typicky index.html, popř. index.php), standartně se zobrazí seznam souborů v daném adresáři. Pokud tomu chcete zabránit, prostě do souboru .htaccess přidejte tento řádek.

Options -Indexes

Jestlže naopak potřebujete zobrazit obsah adresáře, změnte v dané řádce znaménko - za  +, tedy Options +Indexes.

Výpis obsahu adresáře:
Výpis obsahu adresáře

Změna názvu výchozího souboru

.htaccess umožňuje změnu výchozího souboru v adresáři. Výchozí soubor se automaticky otevře při vstupu do adresáře. Nejčastěji má výchozí soubor jméno index.html. Pokud však píšete stránky s pomocí PHP skriptů, budete potřebovat, aby se otevíral soubor s příponou .php. Pomoc je jednoduchá, opět stačí přidat jediný řádek:

DirectoryIndex index.php index.html index.htm muj_vychozi_soubor.php3

Jak je v ukázce vidět, je možné zadat několik názvů, přičemž se řádek vyhodnocuje zleva doprava. Při vstupu do adresáře se tedy server pokusí vyhledat soubor index.php, pokud jej nenajde, zkusí index.html a tak dál. V případě, že adresář neobsahuje žádný výchozí soubor, zobrazí se jeho výpis (pokud je to povoleno)

Ochrana stránek heslem

Jednou z nejzajímavějších funkcí souboru .htaccess je jistě možnost chránit celý Váš web (nebo jeho část) heslem. Stejného efektu lze docílit i prostřednictvým skriptů, ale .htaccess nabízí nejvyšší bezpečnost. Do souboru .htaccess přidejte následující text:

AuthUserFile /cesta_k_souboru.htpasswd/.htpasswd
AuthType Basic
AuthName "Moje soukromá sekce"
require valid-user

Řádek AuthUserFile určuje umístění  souboru s hesly (.htpasswd, viz níže na stránce). Ke zjištění umístění lze snadno použít php funkci phpinfo(), který vrací spoustu různých systémových proměnných. Vytvořte soubor info.php, zkopírujte do něj následující kód a uložte do složky, která obsahuje soubor .htpasswd. Nasměrujte internetový prohlížeč na tento soubor, mělo by se objevit velké množství informací o nastavení serveru. Najděte sekci Apache Environment a v ní položku SCRIPT_FILENAME (viz obrázek). Z pravé části tohoto řádku tabulky překopírujte hodnotu a přepište jméno souboru info.php na .htpasswd. Výsledek už patří za AuthUserFile v souboru .htaccess

<?
 phpinfo();
?>

Výstup funkce phpinfo()
/3w/borec.cz/j/jary/html/secure/.htpasswd

Pokud si Váš webhosting nepodporuje PHP skripty, pak nejspíše nebude podporovat ani vlastní .htaccess.

Soubor s hesly má jméno .htpasswd a obsahuje uživatelská jména a hesla. Každý řádek začíná přihlašovacím jménem, následuje dvojtečka jako oddělovač a zaheslované heslo. K vytvoření takového hesla existují na Internetu speciální skripty, já používám Password Generator. Například pro uživatele Yoda s heslem ForceIsWithMe bude příslušný řádek v souboru vypadat následovně:

Yoda:76WgiafOE6GHc

Samozřejmě, můžete přidat libovolný počet uživatelů. Další řádek AuthType Basic definuje způsob autorizace, není zde potřeba žádné úpravy. Řádek AuthName Vám umožní pojmenovat si chráněnou oblast (v naší ukázce například Jedi Master Only). Pozor, název musí být uzavřen do uvozovek (děkuji Jirkovi za upozornění). Poslední řádek require valid-user říká serveru, že má dále pouštět pouze uživatele znající heslo.

Chcete-li chránit pouze určitou část webu, nakopírujte .htaccess do příslušného adreáře (dávejte pozor na adresy!)

Vytvoření uživatelských skupin

Občas se hodí zpřístupnit část webu pouze některým uživatelům. K tomuto účelu slouží skupiny. Vytvořte soubor .htgroups, a vložte do něj jména uživatelů skupiny. Výsledný soubor pak může vypadat následovně:

jedi-masters: Ben Luke Yoda

jedi_masters následované dvojtečkou je klíčové slovo, Ben, Yoda a Luke jsou členové skupiny. Nyní už jen zbývá upravit soubor .htaccess

AuthUserFile /cesta_k_souboru.htpasswd/.htpasswd
AuthGroupFile /cesta_k_souboru.htgroup/.htgroup
AuthName "Jedi Masters"
AuthType Basic
require group jedi_masters

Výslednou práci si můžete vyzkoušet. Přihlašovací jméno je Yoda a heslo ForceIsWithMe.

Pokračovat...