Jak na soubor .htaccess: Nejčastější příklady použití

Potřebujete přesměrovat doménu na verzi s www, vynutit HTTPS nebo omezit přístup k webu podle IP adresy? Většinu těchto nastavení vyřešíte souborem .htaccess — konfiguračním souborem webserveru Apache, který se nachází ve webrootu domény v adresáři /www/hosting/DOMENA/www/. V tomto článku najdete nejčastější příklady použití, každý s vysvětlením, co dělá a proč.

Všechny příklady si můžete zkopírovat a upravit pro svou doménu. Pokud s .htaccess pracujete poprvé, doporučujeme přečíst nejdřív sekce o vytvoření souboru a základech syntaxe — pochopíte tak, co jednotlivá pravidla znamenají.

Pozor: Soubor .htaccess funguje pouze na webserveru Apache. Ve VPS Centru V3 máte na výběr ze čtyř režimů webserveru — .htaccess funguje ve třech z nich (Apache, Apache – Performance a Apache – Super cache). Nefunguje pouze v režimu Nginx, kde se soubor .htaccess zcela ignoruje. Výchozí režim pro nové domény je Apache – Performance, takže pokud jste nastavení neměnili, .htaccess u vás funguje. Režim webserveru ověříte ve VPS Centru v detailu domény v sekci Přehled. Na samotném hostingu web běží vždy na čistém Apache.

Rychlý přehled pro pokročilé

Tato část slouží pouze pro velmi zkušené uživatele, kteří si chtějí pouze ověřit postup a nepotřebují číst celý článek. Pro všechny ostatní doporučujeme pokračovat další sekcí.

  1. Soubor .htaccess se nachází v /www/hosting/DOMENA/www/ (webroot domény).
  2. Před každou úpravou soubor zálohujte.
  3. Direktivu RewriteEngine On uveďte v souboru pouze jednou, na začátku.
  4. Přesměrování www/non-www → RewriteCond na %{HTTP_HOST} + RewriteRule s [R=301,L].
  5. Vynucení HTTPS → podmínka na %{HTTPS} a %{HTTP:X-Forwarded-Proto} (nutné kvůli reverse proxy).
  6. IP whitelist/blacklist → direktivy <RequireAll> s Require ip / Require not ip.
  7. Přesměrování domén a subdomén → kombinace RewriteCond a RewriteRule s příslušnými příznaky.
  8. Po uložení změn ověřte, že web funguje. Pokud vidíte 500 Internal Server Error, vraťte zálohu případně překontrolujte syntaxi.

Co je dobré vědět předem

Jak .htaccess funguje

Soubor .htaccess je textový konfigurační soubor webserveru Apache. Jeho název začíná tečkou — na Linuxu to znamená, že jde o skrytý soubor, a proto ho ve výchozím stavu nemusíte ve správci souborů nebo FTP klientovi vidět.

Apache čte soubor .htaccess při každém požadavku na webovou stránku. Změny se proto projeví okamžitě — nemusíte nic restartovat. Zároveň to ale znamená, že jakákoli chyba v syntaxi může okamžitě vyřadit váš web z provozu.

Soubory .htaccess fungují kaskádově: pokud máte .htaccess v hlavním adresáři webu i v podadresáři, Apache aplikuje nejdřív pravidla z hlavního adresáře a pak pravidla z podadresáře. Pravidla v podadresáři mohou přepsat ta z nadřazeného adresáře. Hlavní soubor .htaccess se na serverech Váš Hosting nachází ve webrootu domény: /www/hosting/DOMENA/www/.htaccess.

Důležitá upozornění

Důležité: Před každou úpravou souboru .htaccess si vytvořte jeho zálohu. Chybný zápis může okamžitě způsobit nedostupnost celého webu (chyba 500 Internal Server Error). Pokud k tomu dojde, stačí zálohu nahrát zpět a web se obnoví.

Tip: Pokud používáte WordPress, Joomla, PrestaShop nebo jiný redakční systém, v adresáři webu už .htaccess pravděpodobně existuje a obsahuje pravidla potřebná pro chod CMS. Nová pravidla přidávejte nad nebo pod existující obsah — nemažte pravidla, která tam CMS vytvořil, pokud přesně nevíte, co děláte.

Co budete potřebovat

  • Přístup k souborům na serveru — přes Správce souborů (ve VPS Centru V3 nebo v Zákaznickém portálu na webhostingu), přes FTP klienta (FileZilla, WinSCP) nebo přes SSH (pouze na VPS). Pokud se potřebujete připojit přes FTP, postupujte podle návodu Jak se připojit na FTP.
  • Textový editor — libovolný editor, který ukládá soubory jako čistý text (bez formátování). Na serveru přes SSH můžete použít nano nebo vi, ve Správci souborů je editor přímo integrovaný.
  • Aktivní SSL certifikát — pokud chcete nastavit vynucení HTTPS. Informace o SSL certifikátech najdete v článku Aktivace HTTPS: K čemu je SSL certifikát a jak mě ochrání.

Jak .htaccess vytvořit a upravit

Pokud soubor .htaccess ve webrootu vaší domény ještě neexistuje, můžete ho vytvořit několika způsoby. Pokud už existuje (což je běžné u WordPress a dalších CMS), přejděte rovnou na jeho editaci.

Přes Správce souborů

Správce souborů je dostupný ve VPS Centru verze 3 a v Zákaznickém portálu na webhostingu. Ve VPS Centru verze 2 správce souborů není — použijte FTP klienta nebo SSH.

Webhosting

  1. Přihlaste se do VPS Zákaznického portálu a vyberte doménu.
  2. Klikněte na záložku Správce souborů.
  3. Přejděte do adresáře www (webroot domény).
  4. Pokud soubor .htaccess nevidíte, ujistěte se, že máte zapnuté zobrazení skrytých souborů.
  5. Pro vytvoření nového souboru klikněte na Nový soubor, pojmenujte ho .htaccess a potvrďte.
  6. Pro úpravu existujícího souboru na něj klikněte pravým tlačítkem a zvolte Upravit.
Screenshot 2026 03 16 at 21.38.22

VPS Centrum V3

  1. Přihlaste se do VPS Centra a vyberte doménu.
  2. Klikněte na záložku Soubory.
  3. Přejděte do adresáře www (webroot domény).
  4. Pokud soubor .htaccess nevidíte, ujistěte se, že máte zapnuté zobrazení skrytých souborů.
  5. Pro vytvoření nového souboru klikněte na Nový soubor, pojmenujte ho .htaccess a potvrďte.
  6. Pro úpravu existujícího souboru na něj klikněte pravým tlačítkem a zvolte Upravit.
Screenshot 2026 03 16 at 21.32.43

Přes FTP klienta

  1. Připojte se k serveru přes FTP klienta (FileZilla, WinSCP). Návod najdete v článku Jak se připojit na FTP.
  2. Přejděte do adresáře /www/hosting/DOMENA/www/.
  3. Zapněte zobrazení skrytých souborů — ve FileZilla přes Server → Vynutit zobrazení skrytých souborů, ve WinSCP přes Možnosti → Předvolby → Panely → Zobrazovat skryté soubory.
  4. Pokud soubor .htaccess neexistuje, vytvořte na svém počítači nový textový soubor s názvem .htaccess (bez přípony .txt) a nahrajte ho na server.
  5. Pro úpravu existujícího souboru na něj klikněte pravým tlačítkem a zvolte Zobrazit/Upravit (FileZilla) nebo Editovat (WinSCP).

Tip: Při vytváření souboru na Windows dejte pozor, aby se neuložil jako .htaccess.txt. V dialogu „Uložit jako“ zvolte typ souboru Všechny soubory (.) a název zadejte včetně úvodní tečky: .htaccess.

Přes SSH (pouze VPS)

SSH přístup je dostupný pouze na VPS, nikoli na webhostingu. Pokud máte VPS, můžete soubor vytvořit nebo upravit přímo v terminálu. Přejděte do webrootu domény a otevřete soubor v editoru:

cd /www/hosting/DOMENA/www/
nano .htaccess

Po úpravě uložte soubor klávesovou zkratkou Ctrl+O a editor zavřete pomocí Ctrl+X.

Základy syntaxe: Co znamenají direktivy v .htaccess

Než se pustíme do konkrétních příkladů, pojďme si stručně vysvětlit základní direktivy, které se v .htaccess používají nejčastěji. Pokud už s .htaccess pracujete pravidelně, můžete tuto sekci přeskočit.

RewriteEngine, RewriteCond a RewriteRule

Většina pravidel v .htaccess pracuje s modulem mod_rewrite, který umožňuje přepisovat URL adresy. Základní stavební kameny jsou tři:

RewriteEngine On — zapíná modul pro přepisování URL. Bez tohoto řádku žádná pravidla RewriteRule nefungují. Stačí ho uvést v souboru jednou, na začátku — nemusíte ho opakovat před každým pravidlem.

RewriteCond (podmínka) — definuje, za jakých okolností se má následující pravidlo aplikovat. Můžete testovat název domény, protokol, IP adresu návštěvníka a desítky dalších proměnných serveru.

RewriteRule (pravidlo) — říká, co se má s URL udělat, pokud jsou splněny předchozí podmínky. Typicky jde o přesměrování na jinou adresu.

Nejčastější příznaky (flags)

Na konci RewriteRule se v hranatých závorkách uvádějí příznaky, které upřesňují chování pravidla:

PříznakVýznam
[R=301]Trvalé přesměrování (301 Moved Permanently). Prohlížeč i vyhledávače si zapamatují novou adresu.
[R=302]Dočasné přesměrování (302 Found). Vyhledávače si původní adresu ponechají.
[L]Last — zpracování pravidel se po tomto zastaví. Bez [L] by Apache pokračoval dalšími pravidly.
[NC]No Case — porovnání nebere ohled na velká a malá písmena.
[QSA]Query String Append — k přesměrované URL připojí původní parametry za otazníkem.
[NE]No Escape — speciální znaky v URL se nepřekódují.

Příznaky můžete kombinovat čárkou: [R=301,L] znamená „trvalé přesměrování a konec zpracování“.

Regulární výrazy v kostce

V pravidlech RewriteCond a RewriteRule se používají regulární výrazy pro popis URL vzorů:

VýrazVýznamPříklad
^Začátek řetězce^www\. — začíná na „www.“
$Konec řetězce\.cz$ — končí na „.cz“
(.*)Libovolný řetězec (zachycený)Zachycená hodnota se pak použije jako $1
\.Tečka (s escapem)Bez zpětného lomítka by tečka znamenala „libovolný znak“

Přesměrování na verzi s www nebo bez www

Pro SEO je důležité, aby váš web byl dostupný pouze pod jednou verzí adresy — buď s www, nebo bez www. Pokud by fungoval pod oběma, vyhledávače by mohly obsah považovat za duplicitní. Nezáleží na tom, kterou verzi si zvolíte — důležité je být konzistentní.

V příkladech níže používáme doménu example.cz. Nahraďte ji svou skutečnou doménou — nezapomeňte, že tečky v regulárních výrazech musí být zapsané s escapem: \. (zpětné lomítko a tečka).

Přesměrování na verzi s www

Toto pravidlo přesměruje všechny požadavky na doménu bez www na verzi s www:

RewriteEngine On

# Přesměrování example.cz → www.example.cz
RewriteCond %{HTTP_HOST} ^example\.cz$ [NC]
RewriteRule ^(.*)$ http://www.example.cz/$1 [R=301,L]

Co jednotlivé řádky dělají:

  • RewriteCond %{HTTP_HOST} ^example\.cz$ [NC] — podmínka: pravidlo se aplikuje jen pokud návštěvník přišel na adresu bez www. Příznak [NC] znamená, že se nerozlišují velká a malá písmena.
  • RewriteRule ^(.*)$ http://www.example.cz/$1 [R=301,L] — přesměruje na stejnou stránku, ale s předponou www. $1 obsahuje původní cestu (například /kontakt), takže přesměrování zachová celou URL.

Přesměrování na verzi bez www

Toto pravidlo přesměruje požadavky z verze s www na verzi bez www:

RewriteEngine On

# Přesměrování www.cokoliv → cokoliv (univerzální)
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

Tento zápis je univerzální — funguje pro libovolnou doménu, protože %1 automaticky dosadí název domény zachycený z podmínky (vše za www.).

Tip: Pokud na webu současně nastavujete i vynucení HTTPS (viz další sekce), můžete obě pravidla spojit. V URL přesměrování pak místo http:// použijte https://.

Vynucení HTTPS (šifrované komunikace)

Pokud máte na doméně aktivní SSL certifikát (Let’s Encrypt nebo vlastní), je vhodné vynutit, aby veškerá komunikace probíhala šifrovaně přes HTTPS. Návštěvníci, kteří zadají adresu s http://, budou automaticky přesměrováni na https://.

Důležité: Před nastavením vynucení HTTPS se ujistěte, že máte na doméně aktivní a funkční SSL certifikát. Bez něj by web po přesměrování na HTTPS přestal fungovat. Návod k aktivaci najdete v článku Aktivace HTTPS: K čemu je SSL certifikát a jak mě ochrání.

Ve výchozím režimu ve VPS Centrum V3 Apache – Performance (a také v režimu Apache – Super cache) stojí před Apache webserver Nginx jako reverse proxy. To znamená, že Apache samotný nemusí vědět, že požadavek přišel přes HTTPS — informaci o původním protokolu předává Nginx v hlavičce X-Forwarded-Proto. Proto doporučujeme v podmínce testovat obě proměnné — snippet pak funguje správně ve všech režimech webserveru:

RewriteEngine On

RewriteCond %{HTTPS} !on
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [L,QSA,NE]
Header set Content-Security-Policy "upgrade-insecure-requests;"

Co jednotlivé řádky dělají:

  • RewriteCond %{HTTPS} !on — podmínka: požadavek nepřišel přes HTTPS (přímé spojení).
  • RewriteCond %{HTTP:X-Forwarded-Proto} !=https — podmínka: ani reverse proxy nehlásí HTTPS. Obě podmínky musí platit současně.
  • RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [L,QSA,NE] — přesměruje na stejnou adresu, ale s protokolem HTTPS. Příznaky zajistí zachování parametrů ([QSA]) a správné kódování URL ([NE]).
  • Header set Content-Security-Policy "upgrade-insecure-requests;" — instruuje prohlížeč, aby automaticky přepsal všechny HTTP odkazy na stránce na HTTPS. To pomáhá vyřešit problém se smíšeným obsahem (mixed content), kdy jsou na HTTPS stránce načítány některé zdroje přes HTTP.

Tip: Na serverech bez Nginx reverse proxy (mimo Váš Hosting, nebo v režimu čistého Apache ve VPS Centru V3 nebo V2) se někdy používá jednodušší varianta s podmínkou pouze na %{HTTPS} off. V režimech Apache – Performance a Apache – Super cache ale tato varianta může způsobit nekonečnou smyčku přesměrování — proto doporučujeme vždy používat variantu s testem obou hlaviček výše. Ta funguje správně ve všech režimech.

Omezení přístupu podle IP adresy

Pomocí .htaccess můžete omezit přístup k webu (nebo jeho části) na základě IP adresy návštěvníka. To se hodí například pro testovací verzi webu, administrační rozhraní nebo interní aplikace.

Whitelist — povolit přístup jen vybraným IP adresám

Následující pravidlo zablokuje přístup všem návštěvníkům kromě uvedených IP adres. V příkladu povolujeme přístup ze dvou IP adres:

<RequireAll>
    Require all denied
    Require ip 95.168.219.1
    Require ip 185.203.122.50
</RequireAll>

Nahraďte IP adresy svými skutečnými adresami. Můžete jich uvést libovolný počet — každou na samostatném řádku s direktivou Require ip.

Co jednotlivé řádky dělají:

  • Require all denied — výchozí pravidlo: zakázat přístup všem.
  • Require ip 95.168.219.1 — výjimka: povolit přístup z dané IP adresy.

Blacklist — zablokovat konkrétní IP adresy

Pokud chcete naopak povolit přístup všem a zablokovat jen konkrétní IP adresy:

<RequireAll>
    Require all granted
    Require not ip 45.33.32.156
    Require not ip 91.213.50.0/24
</RequireAll>
  • Require all granted — výchozí pravidlo: povolit přístup všem.
  • Require not ip 45.33.32.156 — výjimka: zablokovat přístup z dané IP adresy.
  • Zápis /24 za IP adresou zablokuje celý rozsah adres (v tomto případě 91.213.50.091.213.50.255).

Tip: Pro komplexnější blokování IP adres (včetně automatické detekce útoků) můžete v případě vašeho vlastní VPS V3 využít WAF Firewall ve VPS Centru — v sekci Zabezpečení → WAF Firewall → Whitelist nebo Bany. Více informací najdete v článku Blokace IP adres na SSH pomocí VPS Centra

Ochrana konkrétního adresáře nebo souboru

Pokud nechcete omezit celý web, ale jen konkrétní adresář (například administraci), vytvořte soubor .htaccess přímo v daném adresáři a vložte do něj výše uvedená pravidla.

Alternativně můžete omezit přístup ke konkrétnímu souboru přímo z hlavního .htaccess:

<Files "wp-login.php">
    <RequireAll>
        Require all denied
        Require ip 95.168.219.1
    </RequireAll>
</Files>

Tento příklad omezí přístup k přihlašovací stránce WordPressu wp-login.php pouze na zadanou IP adresu. Pro podrobnější zabezpečení adresářů pomocí hesla se podívejte na článek Zabezpečení adresáře pomocí .htaccess (.htpasswd).

Přesměrování domén a subdomén

Soubor .htaccess umožňuje nastavit různé typy přesměrování mezi doménami, subdoménami a adresáři. V této sekci najdete nejčastější scénáře. Všechny příklady používají doménu example.cz — nahraďte ji svou doménou.

Přesměrování staré domény na novou (301)

Když měníte doménu (například při rebrandingu), potřebujete přesměrovat všechny stránky ze staré domény na novou — včetně zachování cest. Návštěvník, který přijde na example-old.cz/kontakt, se dostane na www.example-new.cz/kontakt:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(www\.)?example-old\.cz$ [NC]
RewriteRule ^(.*)$ https://www.example-new.cz/$1 [R=301,QSA,L]

Výraz (www\.)? zajistí, že přesměrování bude fungovat jak pro verzi s www, tak bez www.

Tip: Přesměrování kódem 301 (trvalé) je důležité pro SEO — říká vyhledávačům, že mají přenést hodnocení ze staré adresy na novou. Pro dočasná přesměrování (například během údržby) použijte kód 302.

Přesměrování subdomény na adresář (301)

Přesměruje návštěvníky ze subdomény na adresář hlavní domény — například z blog.example.cz na example.cz/blog:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^blog\.example\.cz$ [NC]
RewriteRule ^(.*)$ https://example.cz/blog/$1 [R=301,L]

Toto je vnější přesměrování — návštěvník uvidí v prohlížeči novou URL adresu.

Interní přesměrování subdomény do adresáře (bez změny URL)

Pokud chcete, aby se obsah z adresáře zobrazoval pod subdoménou, ale návštěvník v prohlížeči stále viděl adresu subdomény (URL se nezmění), použijte interní přepis. Příklad: subdoména shop.example.cz zobrazuje obsah z adresáře /eshop/:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^shop\.example\.cz$ [NC]
RewriteCond %{REQUEST_URI} !^/eshop/
RewriteRule ^(.*)$ /eshop/$1 [L,QSA]

Všimněte si, že tady chybí příznak [R=301] — proto se URL v prohlížeči nezmění. Druhá podmínka !^/eshop/ zabraňuje nekonečné smyčce (požadavek, který už míří do adresáře /eshop/, se nepřepisuje znovu).

Mapování adresáře na kořen domény (bez změny URL)

Opačný případ: web běží v podadresáři, ale chcete, aby se zobrazoval jako by byl v kořenu domény. Návštěvník vidí example.cz/stranka, ale ve skutečnosti se obsah načítá z example.cz/aplikace/stranka:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(www\.)?example\.cz$ [NC]
RewriteCond %{REQUEST_URI} !^/aplikace/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /aplikace/$1 [L]

RewriteCond %{HTTP_HOST} ^(www\.)?example\.cz$ [NC]
RewriteRule ^(/)?$ /aplikace/index.php [L]

Co jednotlivé podmínky dělají:

  • !^/aplikace/ — nezpracovávat požadavky, které už míří do adresáře (prevence smyčky).
  • !-f — nezpracovávat požadavky na existující soubory (obrázky, CSS, JavaScript).
  • !-d — nezpracovávat požadavky na existující adresáře.
  • Druhý blok pravidel zajistí, že hlavní stránka (/) se načte z /aplikace/index.php.

Tip: Pokud potřebujete změnit kořenový adresář domény (DocumentRoot) bez složitých pravidel v .htaccess, můžete to udělat přímo ve VPS Centru. Návod najdete v článku Jak nastavit DocumentRoot frameworku do jiné složky.

Vlastní chybové stránky, výpis adresářů a znaková sada

Soubor .htaccess umožňuje i řadu dalších nastavení. Zde jsou tři nejčastější, která se hodí na většině webů.

Vlastní chybové stránky

Místo výchozích chybových stránek serveru můžete návštěvníkům zobrazit vlastní — s designem odpovídajícím vašemu webu a s užitečnými informacemi (například odkaz na hlavní stránku nebo vyhledávání). Direktivou ErrorDocument řeknete Apache, jaký soubor má zobrazit pro konkrétní chybový kód:

ErrorDocument 404 /chyba-404.html
ErrorDocument 403 /chyba-403.html
ErrorDocument 500 /chyba-500.html

Cesty odkazují na HTML soubory ve webrootu vaší domény. Nejčastější chybové kódy: 404 (stránka nenalezena), 403 (přístup zakázán), 500 (interní chyba serveru).

Zakázání výpisu adresářů

Ve výchozím stavu může Apache zobrazit seznam všech souborů v adresáři, pokud v něm není soubor index.html nebo index.php. To je bezpečnostní riziko — návštěvník by mohl vidět strukturu vašeho webu a soubory, které nemají být veřejně přístupné. Výpis zakážete jedním řádkem:

Options -Indexes

Po tomto nastavení Apache místo seznamu souborů zobrazí chybu 403 Forbidden.

Nastavení výchozí znakové sady

Pokud se na webu špatně zobrazuje diakritika (české znaky jako „ž“, „ř“, „č“), může pomoci explicitní nastavení znakové sady na UTF-8:

AddDefaultCharset UTF-8

Tato direktiva zajistí, že Apache bude v HTTP hlavičkách prohlížeči sdělovat, že stránky jsou kódovány v UTF-8 — i pokud tuto informaci neobsahuje samotný HTML kód stránky.

Řešení problémů

Po úpravě .htaccess se zobrazí chyba 500 Internal Server Error

Symptom: Po uložení změn v .htaccess web přestane fungovat a zobrazí stránku s chybou 500 Internal Server Error.

Příčina: Nejčastěji jde o syntaktickou chybu v souboru .htaccess — překlep, chybějící uvozovka, špatně zapsaný regulární výraz nebo použití direktivy, kterou Apache v dané konfiguraci nepodporuje.

Řešení:

  1. Nahrajte zpět zálohu souboru .htaccess. Web by se měl okamžitě obnovit.
  2. Pokud nemáte zálohu, podívejte se do error logu Apache, kde najdete přesný popis chyby. Log se nachází na cestě /var/log/apache2/DOMENA/error-DOMENA.log. Poslední záznamy zobrazíte příkazem tail -20 /var/log/apache2/DOMENA/error-DOMENA.log
  1. Ve výstupu hledejte řádky obsahující .htaccess — Apache typicky uvede číslo řádku s chybou a popis problému.

Přesměrování nefunguje

Symptom: Do .htaccess jste přidali pravidlo pro přesměrování, ale po načtení stránky se nic nestane — URL se nezmění.

Příčina: Nejčastější důvody jsou chybějící řádek RewriteEngine On na začátku souboru, umístění souboru .htaccess v nesprávném adresáři (musí být ve webrootu domény /www/hosting/DOMENA/www/), nebo mezipaměť (cache) prohlížeče, která stále zobrazuje starou verzi stránky.

Řešení: Ověřte, že soubor obsahuje RewriteEngine On a že se nachází ve správném adresáři. Zkuste stránku načíst v anonymním okně prohlížeče (Ctrl+Shift+N v Chrome nebo Ctrl+Shift+P ve Firefoxu), aby se vyloučil vliv mezipaměti.

Nekonečná smyčka přesměrování (ERR_TOO_MANY_REDIRECTS)

Symptom: Prohlížeč zobrazí chybu ERR_TOO_MANY_REDIRECTS nebo hlášku „Tato stránka vás přesměrovala příliš mnohokrát“.

Příčina: Pravidla v .htaccess se navzájem volají v kruhu — jedno přesměrování spustí další, které spustí první, a tak dále. Typicky k tomu dochází, když máte duplicitní pravidla pro přesměrování (například z www na non-www a současně z non-www na www), pravidla v .htaccess kolidují s přesměrováním nastaveným v CMS, nebo při vynucení HTTPS chybí podmínka na hlavičku X-Forwarded-Proto (nutná v režimech Apache – Performance a Apache – Super cache, kde Nginx funguje jako reverse proxy).

Řešení: Projděte pravidla v .htaccess a ujistěte se, že neobsahují protichůdná přesměrování. Pokud používáte vynucení HTTPS na serveru Váš Hosting, použijte doporučenou variantu s testem obou podmínek (%{HTTPS} i %{HTTP:X-Forwarded-Proto}), jak je popsáno v sekci o vynucení HTTPS výše.

WordPress přepisuje obsah .htaccess

Symptom: Pravidla, která jste přidali do .htaccess, po čase zmizí nebo se změní.

Příčina: WordPress si spravuje část souboru .htaccess sám — při změně nastavení trvalých odkazů (permalinks) nebo při aktualizaci některých pluginů může přepsat obsah souboru.

Řešení: WordPress přepisuje pouze blok mezi komentáři # BEGIN WordPress a # END WordPress. Vlastní pravidla přidávejte nad tento blok (před řádek # BEGIN WordPress). Pravidla umístěná mimo tento blok WordPress nezmění.

Soubor .htaccess se ignoruje

Symptom: Pravidla v .htaccess nemají žádný efekt, ani se neobjeví chyba.

Příčina: Webserver pro danou doménu je nastavený na režim Nginx (čistý Nginx bez Apache). V tomto režimu Nginx soubory .htaccess nečte a ignoruje. Soubor .htaccess funguje pouze v režimech Apache, Apache – Performance a Apache – Super cache.

Řešení: Ověřte režim webserveru ve VPS Centru — vyberte doménu a v sekci Přehled zkontrolujte nastavení webserveru. Pokud je nastaven režim Nginx a potřebujete funkční .htaccess, přepněte na jeden z režimů s Apache (doporučujeme Apache – Performance, který je výchozí). Pokud chcete zůstat na čistém Nginx, ekvivalentní pravidla je nutné nastavit v konfiguraci Nginx (soubor /etc/nginx/sites-available/domains_conf/DOMENA.conf), což vyžaduje pokročilejší znalosti.

Tip: Ve VPS Centru V2 (starší verze) je situace jednodušší — na doméně běží buď Apache, nebo Nginx, nikdy obojí současně. Pokud je nastaven Nginx, .htaccess nefunguje.

Pokud problém přetrvává a nejste si jistí příčinou, kontaktujte naši podporu.

Nechcete konfiguraci serveru řešit sami? Podívejte se na naše managed servery, kde se o správu a nastavení postaráme za vás. Nebo nám napište — náš tým podpory vám rád poradí s jakýmkoli nastavením.

Pomohl vám tento článek?

Podobné články

Nápověda