Přejít na obsah

Nastavení cookies

Zvolte, které druhy cookies povolíte. Svou volbu můžete kdykoli změnit přes Nastavení cookies v dolní části každé stránky. Prohlášení o ochraně osobních údajů

Nezbytné

Vždy zapnuté

Potřebné pro přihlášení, uchování košíku a zapamatování vašich voleb. Jsou vždy zapnuté.

Které cookies?
  • weboke_sessie, weboke_klant, weboke_remember: vaše relace a trvalé přihlášení
  • weboke_basket: váš košík
  • wkBtwIncl: zobrazení cen s DPH nebo bez DPH
  • wok_cookies: vaše volba cookies, 12 měsíců

Měří, která reklama vede k návštěvě nebo objednávce, abychom neplatili za reklamy, které nic nepřinášejí.

Které cookies?
  • Google Ads přes Google Tag Manager (_gcl_au, _gcl_aw), až 90 dní
  • OpenAI Ads, reklamy v ChatGPT
  • wok_aff: partner, který vás k nám doporučil (partnerský program), 60 dní

4,6

Země a jazyk

Každá země má vlastní web s cenami a DPH dané země.

Zobrazit

www, přesměrování a smíšený obsah

Modul 3: Adresa, https a uživatelé · Doba čtení: 9 minut

Cíl lekce: Po této lekci dokážete zvolit jednu hlavní adresu, přesměrovat všechny varianty na ni pomocí jediného přesměrování a odhalit i vyřešit smíšený obsah.

Klíčové pojmy: kanonická adresa, 301 a 308, řetězec přesměrování, smíšený obsah (mixed content), hledání a nahrazování v databázi, serializovaná data

Čtyři adresy, jeden web

Váš web je dostupný přes čtyři adresy:

http://example.com
http://www.example.com
https://example.com
https://www.example.com

Pro návštěvníka na tom nezáleží, ale pro vyhledávače jde o čtyři různé adresy se stejným obsahem. I cookies (jako Vaše přihlašovací cookie) platí podle názvu: kdo se přihlásí na www, není přihlášený na doméně bez www. Proto si zvolte jednu kanonickou adresu (hlavní adresu) a ostatní tři na ni přesměrujte.

Kterou zvolíte, je věc vkusu (lekce 2.1). Důležité je, aby hlavní adresa byla všude stejná: v DNS, v certifikátu, v Nastavení > Obecné (lekce 3.1) a v přesměrováních.

Přesměrování pomocí 301, v jednom kroku

Přesměrování je odpověď serveru: "tato stránka se nachází jinde". Prohlížeč pak sám přejde na novou adresu. Kód udává, o jaký typ přesměrování jde:

KódVýznamPoužití
301Trvale přesunutoStandardní volba pro přechod z http na https a z www na doménu bez www (nebo naopak)
308Trvale, a metoda (například odeslání formuláře) zůstává stejnáLze použít i pro tento účel; prohlížeče a vyhledávače jej považují za 301
302 nebo 307DočasněPouze pro něco, co je skutečně dočasné, například stránku údržby

Trvalé přesměrování sděluje vyhledávačům, že nová adresa je ta skutečná. U dočasného si i nadále pamatují starou adresu.

Dávejte pozor i na řetězec přesměrování. Řekněme, že Vaše hlavní adresa je https://example.com. Pak chcete, aby to vypadalo takto:

http://www.example.com   301  https://example.com/
http://example.com       301  https://example.com/
https://www.example.com  301  https://example.com/
https://example.com      200

Každá varianta se dostane na hlavní adresu v jednom kroku. Často se ale stává toto:

http://www.example.com   301  https://www.example.com/
https://www.example.com  301  https://example.com/

To sice funguje, ale stojí to navíc jeden krok (další čekací dobu, zejména na mobilu) a navíc TLS handshake. Horší je smyčka: webový server přesměruje na https, WordPress přesměruje zpět na http, protože adresy v nastavení ještě ukazují na http, a prohlížeč nahlásí "příliš mnoho přesměrování". V takovém případě proti sobě působí dvě nastavení. Zajistěte, aby přesměrování na https prováděla pouze jedna strana (webový server nebo panel) a aby adresy ve WordPressu již byly nastavené na hlavní adresu.

WordPress sám také přesměrovává: pokud někdo zadá https://www.example.com/contact/, zatímco adresa webu je https://example.com, WordPress přesměruje na https://example.com/contact/. To ale funguje pouze tehdy, pokud požadavek dorazí až k WordPressu, tedy pokud webový server nechá název www směřovat na tentýž web.

Smíšený obsah

Smíšený obsah (mixed content) je https stránka, která načítá některé součásti přes http://: obrázek, styl (stylesheet), skript, písmo nebo vložené video. Prohlížeč to považuje za nebezpečné, protože tyto součásti mohou být po cestě pozměněny.

  • Skripty, styly a iframy přes http prohlížeče blokují. Váš web pak může vypadat rozbitě nebo některá funkce nebude pracovat.
  • Obrázky, zvuk a video přes http se moderní prohlížeče pokusí automaticky načíst přes https; pokud se to nepovede, budou zablokovány. U zámku se pak může zobrazit varování.

Odkud se to bere:

  1. Staré odkazy ve Vašem obsahu: web, který dříve běžel na http, má v tisících příspěvků <img src="http://example.com/wp-content/uploads/...">. WordPress ukládá tyto odkazy do databáze doslovně.
  2. Nastavení šablony nebo pluginu s plnou adresou, například logo nebo pozadí s http://.
  3. Externí součásti z jiného webu, který je dostupný pouze přes http. Ty je potřeba nahradit nebo odstranit.
  4. Adresy v Nastavení > Obecné, které stále ukazují na http (lekce 3.1).

Jak to najít

Otevřete stránku, stiskněte F12 a podívejte se na kartu Konzole. Prohlížeč nahlásí každý smíšený obsah s adresou dané součásti. Nebo ve zdrojovém kódu stránky (Ctrl+U) vyhledejte src="http:// a href="http://. Běžné odkazy na jiné weby v textu (<a href="http://...">) nezpůsobují smíšený obsah; jde o věci, které stránka načítá.

Hledání a nahrazování, ale pořádně

Řešením starých odkazů ve Vašem obsahu je nahradit všechny výskyty http://example.com v databázi výrazem https://example.com. Pokušení je použít SQL příkaz jako:

UPDATE wp_options SET option_value = REPLACE(option_value, 'http://example.com', 'https://example.com');

To nedělejte. Mnoho nastavení šablon, pluginů a widgetů je uloženo serializovaně. To vypadá takto:

s:27:"http://example.com/logo.png";

s:27 znamená: následuje text o délce 27 znaků. Po obyčejném nahrazení má text 28 znaků (přibylo jedno s), ale stále je tam uvedeno 27. PHP pak již hodnotu nedokáže přečíst a nastavení potichu zmizí: prázdné menu, zmizelé logo, chybějící widgety.

Použijte nástroj, který tyto délky aktualizuje:

  • WP-CLI: nejprve se podívat, pak teprve udělat.
wp search-replace 'http://example.com' 'https://example.com' --all-tables --dry-run
wp search-replace 'http://example.com' 'https://example.com' --all-tables

Pomocí --dry-run uvidíte, kolik nahrazení by proběhlo v každé tabulce, aniž by se cokoli skutečně změnilo.

  • Plugin pro hledání a nahrazování, který podporuje serializovaná data (v adresáři pluginů na wordpress.org jich je více). Plugin poté zase odstraňte.

Vždy nejprve vytvořte zálohu (lekce 8.1). Nikdy také nenahrazujte něco jako example.com bez http:// před ním: zasáhli byste tím i e-mailové adresy a další texty.

V praxi: jak to vypadá v panelu

Jako příklad použijeme DirectAdmin. Jiné panely mají podobný přepínač pro "vždy https".

  1. V nastavení domény zapněte Vynutit SSL s přesměrováním na https (lekce 3.1).
  2. U domény zvolte, zda má www směřovat na doménu bez www, nebo naopak (v DirectAdminu v nastavení domény; jinde pomocí přesměrování přes Přesměrování webu nebo .htaccess).
  3. Zkontrolujte řetězec přesměrování pomocí příkazu níže nebo pomocí vývojářských nástrojů Vašeho prohlížeče (karta Síť, zaškrtnutí "Zachovat protokol").

Shrnutí

  • Zvolte si jednu kanonickou adresu a nechte ostatní tři varianty přesměrovat na ni pomocí kódu 301 (nebo 308), v jednom kroku.
  • Nechte přesměrovávat na https pouze jednu stranu; jinak vznikne smyčka.
  • Smíšený obsah je https stránka, která načítá některé součásti přes http; konzole prohlížeče ukáže, které.
  • Staré odkazy v databázi nahrazujte pomocí wp search-replace nebo pluginu, který rozumí serializovaným datům, nikdy pomocí obyčejného SQL příkazu REPLACE.
  • Vždy nejprve záloha a nejprve zkušební kolo.

Kvíz

1. Jaké přesměrování použijete, abyste http natrvalo přesměrovali na https?



2. Po zapnutí "vždy https" prohlížeč hlásí "příliš mnoho přesměrování". Jaká je nejpravděpodobnější příčina?



3. Proč je UPDATE ... REPLACE(...) v SQL nebezpečné pro převod adres?



4. Kterou součást na https stránce prohlížeč vždy zablokuje, pokud je načtena přes http?



Úkol

Úkol A3.2: Jedna hlavní adresa a žádný smíšený obsah. Zadejte svoji doménu. Program otevře všechny čtyři varianty (http a https, s www a bez www) a sleduje přesměrování. V pořádku je, pokud všechny čtyři skončí na stejné adrese s https, s nejvýše jedním přesměrováním na variantu a pouze s trvalými kódy (301 nebo 308). Poté program přečte HTML domovské stránky a vyhledá skripty, styly, obrázky, iframy a písma, které se načítají přes http://.

Úkol A3.2: Jedna hlavní adresa a žádný smíšený obsah


Co vyplníte a co zjistíme, neukládáme. Váš prohlížeč si pamatuje Vaše odpovědi a to, zda jste úkol splnili. Pokud jste přihlášeni, ukládáme v sekci Moje kurzy pouze to, že jste úkol měli (téměř) správně; i to tam můžete odstranit.

Doporučené čtení

Tyto články popisují jednotlivé kroky v panelech WebOké; v jiných panelech fungují obdobně.

Chvíli strpení…

Nastavení vašich domén

U každé domény nastavte jmenné servery, propojení s hostingem a to, kdo bude držitelem.

Načítání vašich domén…