CW(3,x) .HTACCESS - Prohnaně užitečný konfigurátor našeho webhostingu
Pro nás, co máme webhosting pod Linuxem a nad Apache serverem z toho plyne epochální výhoda: Můžeme si konfigurovat svůj vlastní .htaccess, jehož možnosti snad přichází přímo z nebes (nebo také rovnou z pekel).
Naši rodičové nic jako .htaccess neměli, nejen z čehož je patrno, v o kolik chudším světě žili.
.htaccess je obyčejný textový soubor, mající ve světě Apache nadobyčejný význam. Skoro jako posel boží. Pokud je správně pochopen a použit, dají se jím dělat na webu velmi pokročilá kouzla. Není to jen obyčejný konfigurační soubor, věnujte ve vlastním zájmu jeho pochopení mimořádnou důležitost. Můžete jím hodně dokázat nebo také celý web znefunkčnit.
Konkrétní možnosti s příklady vašeho htaccessu jistě budete mít možnost si nastudovat v Knowledge Base vašeho konkrétního hostingu.
Specifika
Je to holý textový soubor, na jeho editaci nám tedy vystačí obyčejný notepad, případně jakýkoli text editor zabudovaný nejlépe rovnou v FTP klientovi.
Jeho název začíná tečkou. To ve světě Unixu znamená, že je to skrytý soubor neviděný při normálním pohledu do složky.
Zásadně ovlivňuje chování složky, ve které je umístěn. To v kořenovém adresáři webu znamená, že je pánem skoro všeho. Mějte výchozí htaccess vždy zálohován. Pravděpodobně budete během ladění stokrát přepisovat, přejmenovávat a zkoušet chování webu. V každé složce může být definován unikátní htaccess.
Jsou v něm často uváděna nastavení stejné síly jako u primární konfigurace celého serveru.
Pravidla jeho syntaxe jsou: Jeden příkaz na řádek. Uveden znakem # lze napsat libovolný komentář, tedy deaktivovat jeden řádek nastavení a přesto zachovat jeho podobu.
Server se před každým zpracováním HTTP požadavku dívá do adresáře, zda-li v něm náhodou není htaccess a nejprve se řídí jeho instrukcemi, teprve poté čímkoli dalším.
Co jím lze kupříkladu nastavit
Např.: přesměrování výčtu adres, zaheslovaný přístup, zákaz přístupu z určitých IP adres, zobrazování indexu nebo seznamu souborů ve složce, inicializuje web cache nebo kompresi souborů, umožňuje přístup k souborům podle přípony a mnoho mnoho dalšího.
Tak třeba
URL rewriting
Nejžádanější schopností htaccesu je vždy přepisování URL přicházejících požadavků pomocí Apache modulu mod_rewrite pomocí vámi definovaných pravidel, zmíněných právě v htaccesu.
RewriteEngine on
RewriteBase path
RewriteRule Pattern Substitution [flags]
Přesměrování podadresářů
To je druhou celosvětově nejpožadovanější věcí v htaccessu. K vaší stránce
http://www.yourdomain.com/directory/file.html
vedou ve skutečnosti až 4 adresy:
http://www.yourdomain.com/directory/file.html
https://www.yourdomain.com/directory/file.html
http://yourdomain.com/directory/file.html
https://yourdomain.com/directory/file.html
Pomocí htaccessu nadefinujete jednu jedinou podobu pro všechny adresy, která se všem uživatelům vašeho webu natvrdo přepíše, ať zadají cokoli.
Směrování subdomén
Velmi populární je také nastavení subdomén a jejich směrování do složek na webu.
Zákaz linkování
Zákaz linkování obrázků z cizích webů, které používají váš web pouze jako úložiště. Je to nekalost, kterou HTTP bohužel umožňuje. Pomocí htaccessu to můžete syčákům zatrhnout:
Například pro všechny soubory *.gif:
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://www\.example\.com/.*$ [NC]
RewriteRule ^.*\.gif$ - [F]
Také zde syčákům můžete nastavit automatické podstrčení jiného obrázku, např. s vulgárním hlášením nebo nevhodným obsahem.
Chybové stránky
Můžete změnit výchozí chybové stránky na vámi definované pro každý kód HTTP chyby:
ErrorDocument 500 http://www.example.com/chyba-serveru.html
ErrorDocument 404 /stranka-neexistuje.php
ErrorDocument 401 /prihlaseni.html
ErrorDocument 403 "nemáte právo přístupu k souboru"
Zaheslování adresáře
Pomocí htaccessu můžete nastavit heslo pro každou složku vašeho webu. Při pokusu o načtení adresy se otevře HTTP dialog pro zadání jména a hesla, jinak se tam uživatel nedostane.
Nastavení browser cache
Můžete nastavit cachování v mezipaměti prohlížeče pro každou příponu souborů zvlášť. Můžete nestavit kontrolu uplynutí doby expirace, dobu expirace pro MIME typy a mnoho dalšího. Můžete nastavit kompresi obsahu pro zkrácení načítání pomocí mod_deflate pro určité typy souborů. Můžete nastavit chování dnes moderních ETagů.
Celkem
Kompletní výčet všech nastavení pomocí htaccessu je:
Error documents
Redirects
Password protection
Deny visitors by IP address
Deny visitors by referrer
Hot link prevention techniques
Blocking offline browsers and 'bad bots'
DirectoryIndex uses
Adding MIME types
Enable SSI with .htaccess
Enable CGI outside of the cgi-bin
Disable directory listings
Setting server timezone
Changing server signature
Preventing access to your PHP includes files
Prevent access to php.ini
Forcing scripts to display as source code
Ensuring media files are downloaded instead of played
Setting up Associations for Encoded Files
Preventing requests with invalid characters
Takže vidíte, že soubor .htaccess je pro web doslova magickou pomůckou.
Zdroje
Nezapomeňte si to nastudovat v Knowledge Base vašeho konkrétního hostingu !!
Oficiální informace na Apache HTTP Server Project:
https://httpd.apache.org/docs/2.4/howto/htaccess.html
Neoficiální průvodce, web cele věnovaný htaccessu:
http://www.htaccess-guide.com/