Soubor .htaccess je textový soubor v adresáři webu, kterým se na Apache serveru mění chování webu bez zásahu do konfigurace serveru. Používá se hlavně k přesměrování, ochraně adresářů a nastavení cache. O cachování pojednává článek Zvýšení rychlosti načítání stránek, o zaheslování adresářů článek Zaheslování adresářů.
Než začnete
- Soubor začíná tečkou, takže se v některých programech nezobrazuje. V FTP klientu zapněte zobrazení skrytých souborů.
- Před úpravou si zazálohujte původní .htaccess. Chyba v jediném řádku způsobí chybu 500 na celém webu.
- Pokud už soubor obsahuje pravidla (například od WordPressu), nové přidejte nad ně a stávající neodstraňujte.
Přesměrování z HTTP na HTTPS
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Předpokladem je funkční certifikát, viz SSL a HTTPS.
Přesměrování z www na adresu bez www
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301]
Chcete-li naopak všechno posílat na variantu s www, pravidlo upravte. Důležité je zvolit jednu variantu a držet se jí, aby vyhledávače nepovažovaly obě za různé weby.
Přesměrování jedné stránky
Redirect 301 /stara-stranka https://mujweb.cz/nova-stranka
Co znamená 301 a 302
- 301 je trvalé přesměrování. Vyhledávače přenesou hodnocení na novou adresu. Použijte při změně adres nebo přechodu na HTTPS.
- 302 je dočasné přesměrování. Použijte například pro dočasnou údržbu.
Když se něco pokazí
- Chyba 500: v souboru je překlep. Vraťte zálohu .htaccess.
- Prohlížeč hlásí „příliš mnoho přesměrování“: pravidla se dostala do smyčky, nejčastěji kvůli konfliktu s pluginem nebo nastavením aplikace. Zkontrolujte, zda nepřesměrováváte dvakrát a že adresa webu v aplikaci odpovídá (http versus https).
Další příčiny chyb najdete v článku Chyby 403, 404 a 500.