S čím vám můžeme pomoci?

Jak vynutit HTTPS a přesměrování z www na bez www pomocí .htaccess

Hotové pravidlo pro .htaccess, které přesměruje web na HTTPS a sjednotí adresu s www nebo bez www.

Obsah návodu
  1. Co potřebujete
  2. Postup
  3. Vynucení HTTPS
  4. Přesměrování z www na bez www
  5. Přesměrování z bez www na www
  6. Kombinace: HTTPS a bez www jedním pravidlem
  7. Nejčastější chyby

Web by měl být dostupný na jedné jediné adrese. Pokud běží zároveň na http:// i https:// a s www i bez něj, vyhledávače to vidí jako čtyři různé weby a návštěvníci mohou skončit na nezabezpečené verzi. Pravidla v souboru .htaccess všechny varianty trvale přesměrují na tu, kterou si zvolíte.

Co potřebujete

Postup

  1. Připojte se přes FTP a stáhněte si soubor .htaccess ze složky web. Uložte si jeho kopii.
  2. Otevřete ho v textovém editoru (např. Poznámkový blok, ne Word) a na začátek souboru vložte jedno z pravidel níže. Pokud už soubor obsahuje řádek RewriteEngine On, nevkládejte ho podruhé.
  3. Soubor uložte a nahrajte zpět na server.
  4. Otestujte v prohlížeči všechny čtyři varianty adresy (http s www, http bez www, https s www, https bez www). Všechny musí skončit na té zvolené.

Vynucení HTTPS

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Pravidlo přesměruje každý požadavek přes http:// na stejnou adresu přes https:// a zachová doménu i cestu.

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

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

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

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]

Kombinace: HTTPS a bez www jedním pravidlem

Nejčastější požadavek – vše přesměrovat na https://vasedomena.cz:

RewriteEngine On
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^(.*)$ https://vasedomena.cz/$1 [R=301,L]

Varianta pro https://www.vasedomena.cz:

RewriteEngine On
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.vasedomena.cz/$1 [R=301,L]

Nahraďte vasedomena.cz svou doménou. Kód R=301 znamená trvalé přesměrování, které si prohlížeče i vyhledávače zapamatují.

Poznámka

Ve WordPressu vložte pravidlo nad blok # BEGIN WordPress a zároveň v Nastavení → Obecné nastavte obě adresy webu na zvolenou variantu s https://. Jinak bude WordPress přesměrovávat zpět a vznikne smyčka.

Nejčastější chyby

  • Prohlížeč hlásí „příliš mnoho přesměrování“ (smyčka) – nejčastěji se přesměrování kombinuje s dalším pravidlem v .htaccess, s nastavením v redakčním systému nebo s pluginem, který přesměrovává opačným směrem. Ponechte jen jedno pravidlo. Smyčku může způsobit i cache prohlížeče – otestujte v anonymním okně.
  • Prohlížeč varuje, že spojení není bezpečné – pro doménu (nebo její variantu s www) není vystaven certifikát. Požádejte o něj podle návodu Jak získat certifikát pro stránky a HTTPS?. Do té doby pravidlo z .htaccess odstraňte.
  • Chyba 500 Internal Server Error – v souboru je překlep nebo byl uložen s formátováním (např. z Wordu). Vraťte zálohu a zkopírujte pravidlo znovu. Viz také Co dělat, když chybí soubor .htaccess.
  • Stránky se načítají přes HTTPS, ale s varováním „smíšený obsah“ – obrázky a skripty se v šabloně načítají přes http://. Upravte odkazy v obsahu nebo v databázi na https://.
  • Přesměrování na úplně jinou doménu řeší návod Jak přesměrovat doménu pomocí .htaccess.

Nenašli jste co hledáte?

Obraťte se na nás.
Odpovíme nejpozději do 24 hodin.

Napsat podpoře