.htaccess
Konfigurační soubor Apache serveru – přesměrování, URL pravidla, bezpečnost
Co je .htaccess
.htaccess je konfigurační soubor webového serveru Apache, kterým se pro danou složku a všechno pod ní nastavují přesměrování, tvar adres, ochrana adresáře heslem nebo hlavičky odpovědi. Leží obvykle v kořeni webu a jeho název začíná tečkou, takže ho většina souborových správců schovává mezi skryté položky.
Bez Apache je to obyčejný textový soubor
Tady vzniká nejvíc zmatku. Na serveru s nginx se .htaccess neuplatní vůbec: nginx ho nečte, pravidla se píšou do konfigurace serveru a načtou se až po jeho reloadu. Návody na internetu přitom mlčky předpokládají Apache, takže člověk poctivě vloží deset řádků, nic se nestane a hledá chybu v syntaxi, která žádná není. Stejné je to na hostinzích, kde klasický webserver vůbec neběží. Tenhle web jede na Cloudflare Pages a .htaccess by tu byl k ničemu, cache pravidla se řeší souborem _headers.
K čemu ho WordPress používá
WordPress si do souboru sám zapisuje blok pravidel pro trvalé odkazy. Když se v administraci přepne struktura permalinků a soubor není zapisovatelný, podstránky začnou vracet 404 a řešením bývá vložit vygenerovaný blok ručně. Kromě toho na Apache přes .htaccess běžně řešíte:
- přesměrování 301 po změně adres nebo po migraci na nový web
- zákaz výpisu obsahu složky
- ochranu citlivých souborů, například wp-config.php, před stažením z prohlížeče
- vlastní chybové stránky
Regulární výrazy v přesměrovacích pravidlech nejsou moje parketa a u složitějších migrací je nechávám na vývojáři. Co dělám vždycky: než se do souboru sáhne, stáhnu si jeho kopii stranou, a po nasazení projedu vzorek starých adres, jestli opravdu končí tam, kde mají. Překlep v .htaccess neshodí jednu stránku, ale celý web, a to typicky v pátek odpoledne.