Soubor .htaccess v WordPressu: průvodce konfigurací a bezpečností

Autor: Správa WordPress

Soubor .htaccess je výkonný nástroj pro konfiguraci serveru Apache, který WordPress využívá k řízení přesměrování, bezpečnosti a optimalizace webu. Přestože jej mnoho správců WordPress přehlíží, správná konfigurace tohoto souboru může výrazně zlepšit výkon webu, zvýšit bezpečnost a vyřešit běžné problémy s přístupností. Tento článek vysvětluje, co je soubor .htaccess, kde jej najít, jak jej bezpečně upravovat a poskytuje praktické příklady pro běžné úkoly správy WordPress webu.

1. Co je soubor .htaccess a jak jej WordPress používá

Soubor .htaccess (hypertext access) je distribuovaný konfigurační soubor používaný webovým serverem Apache k řízení konfigurace na úrovni adresáře. V WordPressu tento soubor nejčastěji slouží k implementaci trvalých odkazů (pretty permalinks), které umožňují lidsky čitelné URL adresy místo výchozího formátu s parametry. Kromě toho WordPress do souboru přidává pravidla pro zpracování autorizačních hlaviček a základní přesměrování.

Kromě správy trvalých odkazů může soubor .htaccess obsahovat vlastní direktivy pro:
– Přesměrování URL (např. z www na non-www verzi domény)
– Vynucení šifrovaného připojení HTTPS
– Blokování přístupu konkrétních IP adres nebo rozsahů
– Ochrana citlivých souborů jako wp-config.php před přímým přístupem přes web
– Zakázání prohlížení adresářů
– Nastavení vlastních HTTP hlaviček (např. pro bezpečnostní politiky)
– Kompresi odpovědí pomocí mod_deflate pro rychlejší načítání

Je důležité pochopit, že soubor .htaccess není součástí jádra WordPressu, ale jedná se o konfiguraci serveru Apache. WordPress jej používá pouze pokud váš hosting běží na Apache serveru. Na serverech Nginx se podobná konfigurace provádí přímo v konfiguračních souborech serveru, nikoli prostřednictvím .htaccess.

2. Kde soubor .htaccess najít a jak jej identifikovat

Ve standardní instalaci WordPressu na Apache serveru se soubor .htaccess nachází v kořenovém adresáři instalace, tedy ve stejné úrovni jako složky wp-admin, wp-content a wp-includes. V závislosti na konfiguraci hostingu může být kořenový adresář pojmenován například public_html, www nebo podle názvu vaší domény.

Soubor začínající tečkou je ve většině operačních systémů skrytý, proto jej možná neuvidíte ve výchozím zobrazení správce souborů. Pro jeho zobrazení je nutné povolit možnost „Zobrazovat skryté soubory“ ve vašem FTP klientu, SFTP klientu, SSH terminálu nebo v správci souborů poskytovaného vaším hostingem.

Pokud soubor .htaccess v kořenovém adresáři nevidíte, může to znamenat dvě věci:
1. Soubor ještě nebyl vytvořen (např. pokud používáte výchozí nastavení trvalých odkazů)
2. Váš hosting používá jiný webový server než Apache (např. Nginx), který .htaccess nepodporuje

Pro ověření, zda váš server skutečně používá Apache, můžete kontaktovat podporu hostingu nebo zkontrolovat informace o serveru v sekci Nástroje → Zdroj informace o webu v administraci WordPressu.

3. Bezpečné úpravy souboru .htaccess: postup krok za krokem

Upravování souboru .htaccess vyžaduje opatrnost, protože i drobná syntaktická chyba může způsobit, že celý web bude nedostupný (chybová hlášení 500 Internal Server Error). Abyste minimalizovali riziko, postupujte podle následujících kroků:

Krok 1: Vytvořte zálohu
Před každou úpravou stáhněte aktuální verzi souboru .htaccess na svůj lokální počítač nebo vytvořte zálohu prostřednictvím rozhraní hostingu. Tato záloha vám umožní rychlou obnovu v případě chyby.

Krok 2: Používejte stagingové prostředí (pokud je dostupné)
Pokud váš hosting nabízí stagingovou kopii webu, proveďte všechny změny nejprve na ní. Teprve po ověření, že vše funguje správně, nasaďte změny na produkční web.

Krok 3: Otevřete soubor k úpravě
Připojte se k serveru přes SFTP, SSH nebo správce souborů hostingu a otevřete soubor .htaccess v prostém textovém editoru (ne používejte textové procesory jako Microsoft Word, které mohou přidat neviditelné znaky).

Krok 4: Respektujte WordPressem spravovanou sekci
V souboru .htaccess najdete označení # BEGIN WordPress a # END WordPress. Mezi těmito značkami WordPress automaticky spravuje pravidla pro trvalé odkazy a autorizaci. Nikdy nevkládejte vlastní direktivy mezi tyto značky, protože WordPress je může při aktualizaci trvalých odkazů přepsat nebo smazat. Veškeré vlastní změlaní provádějte před značkou # BEGIN WordPress nebo za značkou # END WordPress.

Krok 5: Provádějte změny postupně
Každou úpravu dělejte samostatně a po každé změně otestujte funkčnost webu (domovská stránka, administrace, důležité URL adresy). Tento přístup usnadňuje identifikaci příčiny případných problémů.

Krok 6: Uložte a otestujte
Po uložení souboru okamžitě otevřete web v prohlížeči a zkontrolujte, zda se načítá správně. Otestujte také přihlášení do administrace a funkce, které mohou být vaší úpravou ovlivněny.

4. Praktické příklady použití souboru .htaccess

Níže naleznete několik běžných příkladů, jak lze soubor .htaccess využít ke zlepšení funkcionality a bezpečnosti vašeho WordPress webu. Všechny příklady předpokládají, že váš server používá Apache s povoleným modulem mod_rewrite.

Přesměrování mezi www a non-www doménou

Pro jednotnou podobu URL adres je vhodné přesměrovat veškerý provoz na jednu verzi domény (buď s www, nebo bez). Tím se vyhnete duplicitnímu obsahu v očích vyhledávačů.

Příklad: Přesměrování z www.example.com na example.com

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\\.example\\.com$ [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [R=301,L]

Příklad: Přesměrování z example.com na www.example.com

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\\.com$ [NC]
RewriteRule ^ https://www.example.com%{REQUEST_URI} [R=301,L]

Vynucení šifrovaného připojení HTTPS

Pokud máte nainstalovaný SSL/TLS certifikát, můžete automaticky přesměrovat všechny HTTP požadavky na HTTPS verzi.

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Poznámka: Pokud váš web používá reverse proxy, CDN nebo načítání SSL probíhá na jiné úrovni, konzultujte nastavení přesměrování s poskytovatelem hostingu, aby nedošlo k konfliktům.

Blokování konkrétních IP adres

Chcete-li zabránit přístupu konkrétní škodlivé IP adrese nebo rozsahu adres, použijte direktivu Require.

Blokování jedné IP adresy (Apache 2.4+):

<RequireAll>
    Require all granted
    Require not ip 203.0.113.25
</RequireAll>

Blokování rozsahu IP adres pomocí CIDR notace:

<RequireAll>
    Require all granted
    Require not ip 198.51.100.0/24
</RequireAll>

Ochrana citlivých souborů před přímým přístupem

Aby nedocházelo ke čtení souborů jako wp-config.php nebo .htaccess přímo přes prohlížeč, přidejte následující blok:

<FilesMatch "^(wp-config\\.php|\\.htaccess|\\.htpasswd|debug\\.log)$">
    Require all denied
</FilesMatch>

Zakázání prohlížení adresářů

Pokud chcete zabránit návštěvníkům v prohlížení obsahu adresářů, které neobsahují indexový soubor, použijte:

Options -Indexes

Komprese textových odpovědí pro rychlejší načítání

Aby se snížila velikost přenášených dat a zrychlilo se načítání webu, můžete zapnout kompresi pomocí mod_deflate:

<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
</IfModule>

5. Obnova po chybné úpravě a regenerace pravidel

I přes opatrnost se může stát, že po úpravě souboru .htaccess váš web přestane reagovat nebo zobrazuje chybovou stránku. V takovém případě postupujte následovně:

Krok 1: Obnovte zálohu
Připojte se k serveru přes SFTP a nahrajte záložní verzi souboru .htaccess, kterou jste si vytvořili před úpravou. Pokud nemáte zálohu, přejděte ke kroku 2.

Krok 2: Dočasné přejmenování souboru
Pokud nemáte zálohu, přejmenujte soubor .htaccess například na .htaccess_old. Tím dočasně deaktivujete všechna vlastní pravidla. Pokud se web po tomto kroku znovu zobrazí správně, znamená to, že chyba byla právě v vašem souboru .htaccess.

Krok 3: Regenerace WordPress pravidel
Po obnovení přístupu k webu se přihlaste do administrace WordPressu a přejděte na Nastavení → Trvalé odkazy. Bez změny výběru jednoduše klikněte na tlačítko „Uložit změny“. WordPress se pokusí zapsat svá výchozí pravidla pro trvalé odkazy do souboru .htaccess. Pokud má server potřebná oprávnění, soubor bude automaticky vytvořen nebo aktualizován.

Krok 4: Kontrola oprávnění souboru
Ujistěte se, že soubor .htaccess má oprávnění umožňující čtení ze strany webového serveru (obvykle 644) a že není příliš permissivní (např. 777), což by představovalo bezpečnostní riziko.

6. Kdy .htaccess nepoužívat a alternativní řešení

I když je soubor .htaccess výkonný nástroj, není vždy nejlepším řešením. Zvažte následující situace, kdy je vhodné hledat alternativní přístup:

  • Hosting na Nginxu: Pokud váš hosting používá Nginx jako webový server, soubor .htaccess nebude mít žádný účinek. Stejných výsledků dosáhnete úpravou konfiguračních souborů Nginx (vyžaduje přístup k serveru nebo podporu hostingu).
  • Výkonnostní zátěž: Každý soubor .htaccess způsobuje dodatečné přístupy k diskovému systému při každém požadavku. Na velmi vytížených webech může být efektivnější přesunout konfiguraci přímo do hlavního konfiguračního souboru Apache (vyžaduje privilegovaný přístup).
  • Správa více serverů: V prostředí s více servery je těžké zajistit konzistenci .htaccess souborů napříč všemi uzly. V takových případech je lepší centralizovat konfiguraci na úrovni vyrovnávače zatížení nebo reverse proxy.
  • Komplexní pravidla: Pokud potřebujete vytvořit velmi složité podmínky s mnoha podmínkami, může být čitelnější a údržbově jednodušší použít programovací řešení (např. vlastní plugin) nebo konfiguraci na úrovni aplikace.

Zdroje

Zdroj: Pressidium – WordPress .htaccess file: what it is and how to use it (12. 8. 2026)

Zdroj: WordPress.org – Apache HTTPD / .htaccess – Advanced Administration Handbook (datum nepřesný, ale aktuální verze)

Potřebujete s WordPress webem pomoct? Kontakt najdete přes formulář na stránce Kontakt.