Zabezpečení adresáře pomocí .htaccess (.htpasswd)
Potřebujete skrýt nějakou složku (adresář), do které nemá mít nikdo cizí přístup? Ukážeme si, jak ji pomocí .htaccess a .htpasswd uzamknout. Bez databází, bez frameworků, prostě rychle a funkčně.

1. Najděte správné místo
Připojte se přes FTP (nebo SSH, pokud můžete) a otevřete složku, kterou chcete uzamknout. Například:
/www/hosting/nasetajnadomena.cz/tajne
2. Vytvořte soubor .htaccess
V dané složce si vytvořte nový soubor s názvem .htaccess (ta tečka na začátku tam opravdu patří 😉).
Do souboru vložte následující kód:
AuthType Basic
AuthName "TajnaOblast"
AuthUserFile /www/hosting/nasetajnadomena.cz/tajne/.htpasswd
Require valid-user
Parametry si klidně upravte podle sebe:
- AuthName je název chráněné oblasti,
- AuthUserFile určuje cestu k souboru uživatele.
Tím vlastně říkáte: „Tahle složka je Tajná oblast a dovnitř pustím jen ty, kteří mají jméno a heslo.“
3. Vytvořte soubor .htpasswd
Vytvořte v té samé složce soubor .htpasswd.
Ten slouží jako databáze uživatelů – kdo má přístup, ten se tam zapíše.
Ukázkový zápis:
# login: root, pass: root
root:$apr1$psi1B9A5$9x/383KfLwAlj1ak/omg4/
# login: admin, pass: admin
admin:$apr1$r250U/Lz$owvgPLKtqauz5YR6sG/kR/
Všimli jste si těch podivných hesel? To jsou hashe – takže i kdyby vám někdo soubor ukradl, skutečná hesla neuvidí.
Vygenerovat si je můžete jednoduše třeba zde: https://hostingcanada.org/htpasswd-generator/
Jak moc je to bezpečné?
Upřímně? Tak napůl.
Jméno i heslo se posílá s každým požadavkem zakódované jen v Base64, ne zašifrované. Takže pokud běží na nešifrovaném HTTP, mohl by to někdo po cestě odposlechnout.
A ještě jeden drobný, ale podstatný detail – do uživatelského jména nedávejte dvojtečku (:). Apache ji totiž používá k oddělení jména a hesla.
Kdy se to hodí?
Tahle metoda je ideální, když:
- potřebujete rychle uzamknout testovací prostředí,
- chcete jednoduchou ochranu adminu,
- nechce se vám řešit registrace a zapomenutá hesla,
- vám stačí zabránit náhodným návštěvníkům nahlédnout tam, kam nemají.
Pro bankovní aplikaci to sice není, ale pro běžné použití je to naprosto v pohodě řešení.