htaccess


Co to je .htaccess ?

Soubor .htaccess, který ne vždy je povolen (banan.cz jej povolen má), může značně ovlivnit nastavení serveru. Úplně nejčastějším případem je nastavení chybové stránky 404,zamezení výpisu složky, nebo blokování určitých IP adres, autentizace …

Jak uložit .htaccess ?

Soubor .htaccess je textový dokument, lze jej tedy vytvořit libovolným textovým editorem (NotePad, vim, mcedit …). Pokud budete mít problém tento soubor uložit nazvěte jej jako htaccess.txt a poté jej přejmenujte přímo na serveru (třeba pomocí total comandera) na.htaccess. Rovněž dejte pozor na nastavení ftp klienta, aby zobrazoval soubory začínající tečkou.

Ukázka nejčastějího použití

V příštích článcích podrobně rozeberu možnosti .htaccess, avšak většina uživatelů by mohla vystačit s níže uvedeným.

Ukázkový soubor .htaccess:

ErrorDocument 403 "http://www.webzabavy.info/"
ErrorDocument 404 "http://pomoc.webzabavy.info/htaccess/stranka_404.html"
Options -Indexes

ErrorDocument 403 „http://www.banan.cz/“: v případě nepovoleného přístupu (například špatně nastaveny práva), se zobrazí stránka www.banan.cz

ErrorDocument 404 „http://help.banan.cz/htaccess/stranka_404.html“: v případě že soubor neexistuje, přejdeme na stránku http://help.banan.cz/htaccess/stranka_404.html

Options -Indexes : zákaz procházení adresáře

Jak již bylo řečeno, tyto soubory ovlivňují nastavení serveru, ukládají se do stromového dokumentu složky, na kterou chceme, aby se vztahovaly, to znamená,že umístíme-li soubor .htaccess do hlavní složky našeho webu, budou se zápisy vztahovat na celý web, pokud ale umístíme soubor do podsložky, bude vztahovat na danou složku, čili je tady jakási stromová struktura. Ovšem pokud máme soubor v hlavní složce, neznamená to, že by jsme ho v jakékoli podsložce nemohli změnit, stačí, když do této složky umístíme další soubor .htaccess s novým pravidlem. Toto se nám může hodit například, když chceme pouze na jedné složce webu povolit její prohlížení.

Soubory s pravidly ukládáme do složek pod jmény .htaccess, může dojít k tomu, že při vytváření v textovém editoru nám nepůjde uložit (řešení je v odkazovaném článku), to je způsobeno tím, že tento soubor vlastně nemá jméno!, obsahuje pouze příponu dlouhou osm znaků, což se editoru nemusí líbit. Je to hlavně z důvodu, že soubor beze jména se bude na serveru tvářit jako skrytý, proto jej nepůjde vidět, ovšem k samotnému zamezení přístupu k .htaccess se dostaneme dále v tomto článku.

Mezi základní použití patří jistě chybové hlášky, těmi se nebudu zabývat, jelikož již byly vysvětleny, ale další neméně důležitou funkcí je omezení nebo naopak povolení přístupu na server. Můžeme zakázat přistup jednotlivé IP adrese nebo celé skupině IP adres, toho dosáhneme zadáním pouze 1,2,3 skupin adres (standartní IPv4 adresy obsahují čtyři skupiny čísel). Docílíme toho následovně:

deny from xxx.xxx.xxx.xxx

Kde xxx.xxx.xxx.xxx znamená Ip adresu, pokud chceme zahradit přístup všem IP adresám, nahradíme xxx… za all. Pokud chceme naopak povolit přistup do složky, napíšeme do .htaccess následující pravidlo:

allow from xxx.xxx.xxx.xxx

Vše ostatní platí stejně, jako v případě blokování IP adresy, čili i povolení všem. Možná vám vrtá hlavou, proč psát povolení všem, když je to standartní, že by si tím webmaster jen komplikoval život? Rozhodně ne. Protože pomocí .htaccess můžeme dávat různým lidem různá práva, čili tyto providla je možno kombinovat, pokud to není jasné, ukážu to na následujícím příkladu:

order allow,deny
deny from xxx.xxx.xxx.xxx
allow from all

Tento kód, jestli to tak můžu nazvat znamená, že zakážeme přístup z xxx…, ale všem ostatním jej povolíme, opačný postup můžeme použít například při přístupu na náš server z internetu, kdy nechceme, aby nám na localhost chodili a prohlíželi si lidé. Všechna omezení ale neplatí pro skripty, například PHP, což můžeme dobře využít.

Můžeme nastavit obdobným způsobem taky ochranu souboru .htaccess, a to tak, že do něj vložíme následující pravidlo:

<Files .htaccess>
order allow,deny
deny from all
</Files>

Pro vysvětlení, co to vlastně dělá, celé pravidlo se vztahuje k souboru .htaccess, je ohraničeno párovým atributem files, následující pravidla jsou již známá. K čemu to vlastně využít? Říkáte si, že v těchto souborevh není nic tajného? Omyl, pomocí .htaccess totiž můžeme zaheslovat soubor, je to nejlepší ochrana, jaká může být. Celkově se toto pravidlo skládá ze dvou souborů, a to .htaccess a .htpasswd, v prvním je pravidlo, ve druhém jsou uživatelské jména a hesla. .htaccess vypadá takto:

AuthUserFile /cesta k souboru .htpasswd
AuthGrouFile /dev/null
AuthName "jmeno"
AuthType Basic

require valid-user

Cesta k souboru .htpasswd je cesta k tomuto souboru, který doporučuji zadat do kořenové složky, protože tam bývá nejlépe chráněn, pokud tuto cestu neznáme, můžeme ji zjistit pomocí funkce phpinfo(), konkrétně řádek SCRIPT_FILENAME, kde samozdřejmě musíme upravit koncové udaje, jde zde pouze pro určení adresy na serveru! Jaku jméno uvedeme jméno této chráněné složky. Do souboru .htpasswd uvedeme jména a hesla v následovném seskupení:

uzivatelskejmeno:heslo
uzivatelskejmeno2:heslo2
...:...

Pomocí .htaccess můžeme ještě například změnit indexovaný soubor, tedy index.htm,php na ahoj.htm,php, ale i přidávat koncovky jako například.jpg a pod. Toho docílíme, že do souboru přidáme:

DirectoryIndex index.php index.html index.php ahoj.php ahoj.png cau.php

Přitom platí, že na server bude hledat soubory postupně z leva do prava, to znamená, že soubor na levé straně má větší váhu, než ten na pravé, server bude postupně hledat tak, že pokud nenalezne soubor se jménem, které je uvedeno na levé straně, bude postupovat dále napravo. Dále můžeme pomocí .htaccess přesměrovávat na jiné soubory nebo složky, to znaméná, zadáme-li do kolonky prohlížeče adresu x, bude jej server hledat na adrese y, praktický příklad:

Redirect /cesta souboru ci slozky http://www.domena.tld/nova cesta souboru ci slozky

Nesmíme zapomínat na to, že první adresa je adresa vzhledem ke kořenové složce, druhá už je vzhledek ke globální síti.Takto můžeme odkazovat také na složky a cokoli jiného. V odkazovaném článku je popsáno zakázání zobrazení složky, což je velmi výhodné, ale co když chceme v jedné složce zobrazení povolit?, například pro umožnění stahování skriptů, obrázků atd. Přidáme následující pravidlo do .htaccess v požadované podsložce

Options +Indexes

Všimněte si, že se zápis od zakázání liší jen ve znaménku, pouhou záměnou – za +. Když už jsme u toho zabrazení seznamu složky, možná by nebylo na škodu upozornit, že i seřazení seznamu lze ovlivnit pomocí .htaccess, třeba tak, že se bude řadit podle jména, od A po Z (dle abecedy). Zapíšeme to následovně:

IndexOrderDefault Ascending Name

IndexOrderDefault Descending Name

Druhý příklad se zpracuje jako opak, čili od Z po A, místo Name, což znamená jméno souboru, můžeme doplnit ještě Siz=velikost souboru, date=datum souboru a description=popis souboru. Toto by pro základní popis souborů .htaccess myslím stačilo, tyto soubory lze samozdřejmě spojit s PHP, ale o tom možná-asi napíše někdo jiný.

0

Nahlásit chybu

Nahlásit chybuZavřít

Napsat komentář