SSLmentor

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

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

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.

 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

Pomocí editace souboru .htaccess docílíme potřebné přesměrování a zobrazení adresy HTTPS:// na svém webu. Do souboru .htaccess, hned pod řádek RewriteEngine On přidejte následující řádky, které zajistí trvalé (301) přesměrování všech adres. Toto nastavení je vhodné i pro vyhledávač Google. 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]

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 v prohlížeči Chrome, chce schovat 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í.

# presmerovani adresy bez www na https://www.
#RewriteCond %{HTTP_HOST} !^www\. [NC]
#RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]

# presmerovani z adresy www. pouze na https://
#RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
#RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

Vzor .htaccess přesměrování na HTTPS + doména s www

Kompletní kód, který můžete vložit do souboru .htaccess na většině webhostingů pro výsledek https://www.domenaxyz.cz.

RewriteEngine On

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

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

Vzor .htaccess přesměrování na HTTPS a doménu bez www

Kompletní kód, který můžete vložit do souboru .htaccess na většině webhostingů pro výsledek 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]

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ů

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 vhodné přesměrovávat hned na variantu HTTPS://.

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.

SSL služby