Aktualizovaný obsah, původně publikovaný v červnu 2018
Máte web na starém HTTP s varováním „Není bezpečné“ od prohlížečů? Nebo vás Google a Seznam neposouvají výš? 301 přesměrování na HTTPS je jako ukázat všem návštěvníkům cestu k hlavní bráně – bezpečné, výhodné pro SEO a nezbytné. Tento návod vás provede nastavením na Apache nebo Nginx a nabídne tipy, jak se vyhnout nástrahám. Aktualizováno pro rok 2025 podle nejnovějších standardů.
Představte si, že váš web běží na různých adresách: http://priklad.cz, https://priklad.cz nebo http://www.priklad.cz. Google to může považovat za tři samostatné weby, co rozsekává váš SEO potenciál. 301 přesměrování všechny – návštěvníky i vyhledávače – nasměruje na jednu adresu, čímž zachová provoz i pozice.
HTTPS je dnes základ. Šifruje data uživatelů, chrání před varováními prohlížečů, jako je „Není bezpečné“ v Chromu, a přináší malý bonus v Google žebříčcích. Bez přesměrování může HTTP verze odhánět lidi. 301 přesměrování je taky skvělé při rebrandingu, sloučení webů nebo přechodu na HTTPS.
Kdy použít 301 přesměrování?
Zajímavost: Chrome v roce 2018 nastavil nové pravidla a udělal z HTTPS téměř povinnost. Chcete vědět víc? Přečtěte si náš článek Jak ovlivní vaše stránky červencová (2018) verze Chrome 68?.
1. Ověřte připravenost HTTPS Než začnete s přesměrováním, ujistěte se, že HTTPS funguje. Získejte SSL certifikát – zdarma od Let’s Encrypt je skvělá volba. Hostingové panely jako cPanel nebo Plesk to zjednodušují, nebo můžete použít CDN, například od Cloudflare. Po nastavení otestujte certifikát na SSL Labs a cílte na hodnocení A nebo A+.
2. Nastavení přesměrování na Apache přes .htaccess Na Apache serveru se přesměrování řeší v souboru .htaccess. Zkontrolujte, zda je modul mod_rewrite zapnutý. Pokud ne, přidejte do konfigurace serveru:
LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
Restartujte Apache příkazem:
sudo apache2ctl restart
Otevřete .htaccess v kořenové složce webu. Pro základní přesměrování z HTTP na HTTPS použijte:
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Chcete odstranit www (nebo ho ponechat)? Příklad pro https://priklad.cz bez www:
RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.priklad\.cz$ [NC] RewriteRule ^(.*)$ https://priklad.cz/$1 [R=301,L]
Chyby v .htaccess mohou zkazit vše, takže kód důkladně zkontrolujte.
3. Nastavení přesměrování na Nginx Na Nginx se přesměrování nastavuje v konfiguraci virtuálního hostitele, například v nginx.conf nebo sites-enabled/priklad.conf. Pro základní přesměrování z HTTP na HTTPS:
server { listen 80; server_name priklad.cz www.priklad.cz; return 301 https://$server_name$request_uri; }
Pro HTTPS s www:
server { listen 80; server_name priklad.cz www.priklad.cz; return 301 https://www.priklad.cz$request_uri; }
Pro HTTPS bez www:
server { listen 80; server_name priklad.cz www.priklad.cz; return 301 https://priklad.cz$request_uri; }
Pro přesměrování HTTPS bez www na HTTPS s www:
server { listen 443 ssl http2; server_name priklad.cz; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; return 301 https://www.priklad.cz$request_uri; } server { listen 443 ssl http2; server_name www.priklad.cz; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; root /var/www/priklad; # Další nastavení... }
Pokud hostingový panel omezuje samostatné vhosty, přidejte přesměrování do hlavního bloku:
server { listen 80; listen 443 ssl http2; server_name www.priklad.cz priklad.cz; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; root /var/www/priklad; if ($scheme = http) { return 301 https://$server_name$request_uri; } # Další nastavení... }
4. Otestujte přesměrování Po nastavení ověřte funkčnost pomocí Redirect Checker. Načtěte web přes HTTP – přesměruje na HTTPS? V Chrome nebo Firefoxu hledejte chyby „smíšeného obsahu“ (když se na HTTPS stránce načítá HTTP obsah). Ty je třeba opravit.
Tip: Smíšený obsah může být problém. Podívejte se na průvodce ochranou před proxy zrcadly pro další bezpečnostní tipy.
5. Aktualizujte Google Search Console Aby Google věděl o přechodu na HTTPS:
Přidejte https://priklad.cz jako novou vlastnost v Google Search Console.
Nahrajte aktualizovanou sitemap.xml.
Zkontrolujte „Chyby procházení“ a vyřešte problémy.
Použijte nástroj „Kontrola URL“ pro požadavek na přeindexování.
Přeskočení tohoto kroku může oddálit obnovu pozic.
6. Přidejte HSTS pro vyšší bezpečnost HTTP Strict Transport Security (HSTS) vynutí použití HTTPS. Přidejte:
Pro Apache:
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
Pro Nginx:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
Pro maximální ochranu zvažte přidání webu na HSTS Preload List.
7. Zjednodušte si to s CMS Používáte WordPress, Joomla nebo PrestaShop? Žádný kód nepotřebujete. Na WordPressu plugin Really Simple SSL přesměruje HTTP na HTTPS za vás. V cPanelu nebo Plesku zapněte „Vynutit HTTPS“ v nastavení domény. Rychlé a jednoduché.
Nedávno jsme pomohli pražskému e-shopu s kávou přejít na HTTPS. Starý HTTP web klesal v Google žebříčcích a varování prohlížečů odháněla zákazníky. 301 přesměrování přes Nginx a vyčištění smíšeného obsahu to zachránilo. Po testování v testovacím prostředí se za dva měsíce návštěvnost zvýšila o 15 % a odliv klesl z 48 % na 39 %. CDN od Hostiserver přidalo rychlost. Důkladné testování bylo klíčem.