SSLmentor

TLS/SSL certifikáty pro kvalitní HTTPS zabezpečení webových stránek a internetových projektů.

Nastavení přesměrování na HTTPS v .htaccess

Návod na nastavení přesměrování http na https

Po nasazení SSL certifikátu na webhosting musíme zajistit, aby veškerá komunikace probíhala po zabezpečeném protokolu HTTPS. Návštěvníci stránek zadávají do prohlížeče zkrácenou adresu stránek, někdy vloží s www, jindy pouze název domény bez www. Na internetu mohou být také starší odkazy na nezabezpečenou adresu http://. Tyto případy musíme ošetřit tak, aby vše směrovalo správně na adresu s HTTPS protokolem a také pouze jednu variantu s nebo bez www. Toho docílíme nastavením přesměrování http na https.

 Máte-li své webové stránky na populárním redakčním systému WordPress, podívejte se na nápovědu Jak nastavit HTTPS na WordPressu.

Přesměrování HTTP na HTTPS

Na většině webhostingů (Linux) je možné pomocí editace souboru .htaccess docílit potřebné přesměrování a zobrazení adresy HTTPS:// při přístupu na webové stránky. Nastavení se provádí tak, že do souboru .htaccess, hned pod řádek RewriteEngine On přidáte následující řádky, které zajistí trvalé (redirect 301) přesměrování všech adres na HTTPS. Nastavení pomocí přesměrování 301 je doporučované i pro informování vyhledávačů (např. Google). Je tak zajištěn přenos hodnocení původní stránky na adresu s https://.
Soubor .htaccess naleznete na linuxovém webhostingu v domovské složce vašeho webu.

RewriteEngine On

# all redirection HTTP -> HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Na internetu se můžete setkat s několika dalšími podobnými zápisy. V případě, že by uvedené přesměrování na HTTPS po vložení do souboru .htaccess nefungovalo, doporučujeme přesné nastavení konzultovat se zákaznickou podporou hostingu.

Nastavení přesměrování HTTPS na Windows hostingu se provádí v souboru web.config. Konkrétní nastavení si vyžádejte u provozovatele webhostingu.

Přesměrování adres s www a bez www

Při nastavení domény bychom si měli vždy určit, zda se bude doména zobrazovat s adresou www nebo bez www. Z uživatelského hlediska je adresa domény www.domenaxyz.cz upřednostňována a běžní uživatelé předpokládají, že internetová adresu obsahuje spojení www.doména. Tento zápis je populárnější i z hlediska marketingu. Naopak u technicky zaměřených webů se často používá adresa bez uvedení www. Je také nutné vzít v potaz, že Google chce v budoucnu v prohlížeči Chrome schovávat nejenom text "https://", ale i "www.". Rohodnutí je vždy na každém zvlášť.

Pro optimalizaci SEO si určete pouze jednu adresu. Důvodem je, že vyhledávače mohou indexovat obě adresy a snižovat tak hodnotu obsahu ve vyhledávání.

Vzory kódu pro .htaccess přesměrování na HTTPS

Níže uvádíme kompletní kódy, které můžete vložit do souboru .htaccess na většině linuxových webhostingů.

Pokud máte zájem o studium mod_rewrite v .htaccess, doporučujeme stránku Mod_rewrite - pokročilá manipulace s URL od základů

Doména s adresou začínající www

Přesměrování na https://www.domenaxyz.cz.

RewriteEngine On

# all redirection HTTP -> HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# redirection no www -> https://www.
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]

Doména bez www

Přesměrování na https://domenaxyz.cz.

RewriteEngine On

# all redirection HTTP -> HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# redirection www. -> https://
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

Kontrola správně nastaveného HTTPS přesměrování

Zkontrolovat, zda se nám stránky přesměrují správně můžeme provést manuálně nebo vyzkoušet on-line nástroj HTTP status checker na stránkách httpstatus.io, kde se do formuláře vkládají všechny 4 varianty pro zadávání domény a kde jsou vidět postupné stavy přesměrování na https://.

Test přesměrování

Správné přesměrování podle Mozilla.org

Podle doporučení Mozilla.org je postup správného přesměrování: http://example.com → https://example.com → https://www.example.com. Tedy nejdříve na stejné doméně přesměrujeme na zabezpečený protokol a následně na "druhou doménu". Toto nastavení umožňuje správně použít záhlaví protokolu HTTP pro bezpečnostní hlavičku HSTS.

Zda máte nastaveno přesměrování správně si můžete otestovat na adrese observatory.mozilla.org.

Testování kvality přesměrování

V testu penalizované přesměrování je http://example.com → https://www.example.com.
V případě použití multi-doménových SSL certifikátů, které neobsahují variantu domény s a bez www je nutné přesměrovávat vždy na variantu HTTPS://.

Mixed Content

Po nainstalování SSL certifikátu a nastavení redirectu na HTTPS protokol se může stát, že prohlížeč neukazuje čistý zámeček zabezpečené webové stránky. Problémem je výskyt míchaného obsahu (Mixed Content) na stránce, kdy dochází k načítání prvků z nezabezpečené adresy s HTTP protokolem.
Jak toto vyřešit najdete v nápovědě Řešení Mixed Content.

SSLmentor doporučuje

Nastavte si také přesměrování pomocí HSTS

HSTS hlavička sděluje prohlížeči, že na doméně (ev. subdoménách) musí být komunikace vedená VŽDY pomocí HTTPS. Cílem je zabránit manipulaci před přesměrováním na bezpečné HTTPS. Více informací o bezpečnostích hlavičkách naleznete na našem projektu SecurityHeaders.cz.