Přesměrování webu z HTTP na HTTPS

Pokud vám webové stránky běží na zabezpečeném protokolu HTTPS, což by mělo být již samozřejmostí, nesmíte zapomenout také správně nastavit přesměrování z nezabezpečeného http:// na https://.

Důvodů, proč to dělat, je několik. Prvním, a asi také tím nejdůležitějším, je to, abychom zajistili soukromí našich návštěvníků při prohlížení webových stránek, které zabezpečený protokol HTTPS přináší. Druhým důvodem může být například to, abychom předešli duplicitě URL. S tím můžou mít problém například vyhledávače typu Google, Seznam atd., které můžou Vaše webové stránky penalizovat za to, že stejný obsah je dostupný na dvou různých URL a za následek to bude mít snížení pozic ve výsledcích vyhledávání.

Přesměrování na HTTPS za pomocí .htaccess

Nejjednodušším a nejčastějším způsobem, jak toho dosáhnout, je nastavit přesměrování všech URL na https správného nastavení v souboru .htaccess.

Často se můžete setkat s následujícím řešením, které může ve většině případech fungovat naprosto správně.

<IfModule mod_rewrite.c>

  RewriteEngine On

  RewriteCond %{HTTPS} !on
  RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

</IfModule>

Na některých serverech ale narazíte. Konkrétně nastane problém například na českém webhostingu Wedos, který vás nepřesměruje tak, jak si představujete. Díky tomu, jak je tvořena adresářová struktura na tomto hostingu a je nastaven výchozí .httacces soubor, dojde k přesměrování na URL typu https://www.pavelkovar.cz/domains/pavelkovar.cz/ – což opravdu nechceme.

Následující způsob přesměrování na hostingu Wedos již funguje bez problému a to díky absenci %{REQUEST_URI}, které právě obsahuje celou adresářovou cestu k vašemu webu.

<IfModule mod_rewrite.c>

  RewriteEngine On

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

</IfModule>

Aby to ale nebylo tak jednoduché, s předchozími řešeními narazíme u hostingu Active24, kde vám fungovat nebudou a i v oficiální nápovědě (https://faq.active24.com/cz/098327-htaccess-editace-specifika#HTTPShtacces) doporučují zcela jiné, na první pohled složitější, řešení.

<IfModule mod_rewrite.c>

  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;"

</IfModule>

Nakonec je také dobré zmínit, že k dosažení správného přesměrování je důležité přesměrovávat status kódem 301, který značí trvalé přesměrování dané URL.

Použití HTTPS ve WordPress

Pokud Vám běží web na redakčním systému WordPress, kromě nastavení přesměrování pomocí .htaccess, bude potřeba provést ještě několik drobných úprav. Nastavení pro WordPress se věnuji v tomto článku.

Neváhejte mě kontaktovat

V případě zájmu o mé služby mě můžete kontaktovat na

pavel@pavelkovar.cz

nebo

Fyzická osoba zapsaná v Živnostenském rejstříku od 30. 7. 2014, eviduje Městský úřad Rožnov pod Radhoštěm,
Pavel Kovář, IČO: 03246078