Modul 3 · 3.2
www, átirányítás és vegyes tartalom
Modul 3: Cím, https és felhasználók · Olvasási idő: 9 perc
Tanulási cél: A lecke után képes lesz egy fő címet választani, minden változatot egyetlen átirányítással oda irányítani, valamint felderíteni és megoldani a vegyes tartalmat.
Kulcsfogalmak: kanonikus cím, 301 és 308, átirányítási lánc, vegyes tartalom (mixed content), keresés és csere az adatbázisban, szerializált adatok
Négy cím, egy weboldal
Az Ön weboldala négy címen érhető el:
http://example.com
http://www.example.com
https://example.com
https://www.example.comA látogatónak ez mindegy, a keresőmotorok számára azonban ez négy különböző cím ugyanazzal a tartalommal. A sütik (például a bejelentkezési süti) is névenként érvényesek: aki a www címen jelentkezik be, az nincs bejelentkezve a www nélküli domainen. Ezért egy kanonikus címet (a fő címet) választ, és a másik hármat oda irányítja át.
Hogy melyiket választja, ízlés kérdése (2.1. lecke). A lényeg, hogy a fő cím mindenhol ugyanaz legyen: a DNS-ben, a tanúsítványban, a Beállítások > Általános oldalon (3.1. lecke) és az átirányításokban.
Átirányítás 301-gyel, egy lépésben
Az átirányítás a szerver válasza: „ez az oldal máshol található”. A böngésző ekkor magától az új címre lép. A kód megmondja, milyen átirányításról van szó:
| Kód | Jelentés | Használat |
|---|---|---|
| 301 | Véglegesen áthelyezve | Az alapértelmezett választás a http-ről https-re és a www-ről a www nélküli domainre (vagy fordítva) |
| 308 | Végleges, és a metódus (például egy űrlapküldés) változatlan marad | Erre a célra is használható; a böngészők és a keresőmotorok 301-ként kezelik |
| 302 vagy 307 | Ideiglenes | Kizárólag valóban ideiglenes dologra, például egy karbantartási oldalra |
A végleges átirányítás jelzi a keresőmotoroknak, hogy az új cím a valódi. Ideiglenes átirányításnál továbbra is a régi címet jegyzik meg.
Figyeljen a láncra is. Tegyük fel, hogy a fő címe https://example.com. Ekkor ezt szeretné:
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 200Minden változat egy lépésben jut el a fő címre. Gyakran viszont ez történik:
http://www.example.com 301 https://www.example.com/
https://www.example.com 301 https://example.com/Ez működik, de egy plusz lépésbe kerül (több várakozás, főleg mobilon), és egy plusz TLS-kézfogásba. Még rosszabb a körbeirányítás: a webszerver https-re irányít, a WordPress visszairányít http-re, mert a beállításokban a címek még http-vel szerepelnek, a böngésző pedig „túl sok átirányítás” hibát jelez. Ilyenkor két beállítás dolgozik egymás ellen. Gondoskodjon róla, hogy csak egy szereplő irányítson át https-re (a webszerver vagy a vezérlőpult), és hogy a WordPressben a címek már a fő címre legyenek állítva.
A WordPress maga is átirányít: ha valaki a https://www.example.com/contact/ címet kéri, miközben a weboldal címe https://example.com, a WordPress átirányít a https://example.com/contact/ címre. Ez csak akkor működik, ha a kérés eljut a WordPresshez, vagyis ha a webszerver a www nevet is ehhez a weboldalhoz vezeti.
Vegyes tartalom
A vegyes tartalom (mixed content) olyan https-oldal, amely elemeket http:// címről tölt be: képet, stíluslapot, szkriptet, betűtípust vagy beágyazott videót. A böngésző ezt nem tartja biztonságosnak, mert ezek az elemek útközben módosíthatók.
- A http-n keresztül érkező szkripteket, stíluslapokat és iframe-eket a böngészők letiltják. A weboldala ilyenkor hibásan jelenik meg, vagy egy funkció nem működik.
- A http-n keresztül érkező képeket, hangot és videót a modern böngészők automatikusan https-en próbálják letölteni; ha ez nem sikerül, letiltják őket. A lakat ilyenkor figyelmeztetést mutathat.
Honnan származik:
- Régi hivatkozások a tartalmában: egy korábban http-n futó weboldal több ezer bejegyzésében szerepel
<img src="http://example.com/wp-content/uploads/...">. A WordPress ezeket a hivatkozásokat szó szerint tárolja az adatbázisban. - Sablon- vagy bővítménybeállítások teljes címmel, például egy logó vagy háttér
http://címmel. - Külső elemek egy másik weboldalról, amelyek csak http-n érhetők el. Ezeket le kell cserélni vagy el kell távolítani.
- Címek a Beállítások > Általános oldalon, amelyek még http-vel szerepelnek (3.1. lecke).
Így találja meg
Nyissa meg az oldalt, nyomja meg az F12 billentyűt, és nézze meg a Console (Konzol) lapot. A böngésző minden vegyes tartalmat jelez az adott elem címével. Vagy keressen az oldal forráskódjában (Ctrl+U) a src="http:// és a href="http:// kifejezésre. A szövegben lévő, más weboldalakra mutató hivatkozások (<a href="http://...">) nem okoznak vegyes tartalmat; azok az elemek számítanak, amelyeket az oldal betölt.
Keresés és csere, de helyesen
A tartalomban lévő régi hivatkozásokra az a megoldás, hogy az adatbázisban minden http://example.com előfordulást https://example.com címre cserél. Csábító lehet egy ilyen SQL-parancs:
UPDATE wp_options SET option_value = REPLACE(option_value, 'http://example.com', 'https://example.com');Ne tegye. A sablonok, bővítmények és widgetek sok beállítását szerializálva tárolják. Ez így néz ki:
s:27:"http://example.com/logo.png";Az s:27 azt jelenti: itt egy 27 karakteres szöveg következik. Egy egyszerű csere után a szöveg 28 karakteres (hozzájött egy s), de továbbra is 27 szerepel előtte. A PHP ekkor már nem tudja beolvasni az értéket, és a beállítás csendben eltűnik: üres menü, eltűnt logó, hiányzó widgetek.
Olyan eszközt használjon, amely frissíti ezeket a hosszakat, és mindig készítsen előbb biztonsági mentést (8.1. lecke): a keresés és cserének nincs lomtára.
- WP-CLI: előbb nézze meg, aztán hajtsa végre. A terminálban lépjen a WordPress mappájába, és először a próbafuttatást indítsa el (első sor), csak utána a valódit (második sor).
wp search-replace 'http://example.com' 'https://example.com' --skip-columns=guid --dry-run
wp search-replace 'http://example.com' 'https://example.com' --skip-columns=guidA --dry-run kapcsolóval láthatja, táblánként hány csere történne, anélkül hogy bármi megváltozna. A --skip-columns=guid érintetlenül hagyja a bejegyzések állandó azonosítóit (guid oszlop); a WordPress azt javasolja, hogy ezeket soha ne módosítsa. További kapcsoló nélkül a WP-CLI csak a WordPress tábláin dolgozik. Ha egy bővítménynek saját táblái vannak ugyanazzal az előtaggal, adja hozzá a --all-tables-with-prefix kapcsolót. A --all-tables kapcsolót csak akkor használja, ha tudja, miért teszi: ez az adatbázis minden tábláját érinti, egy másik weboldalét vagy alkalmazásét is.
- Keresés és csere bővítmény, amely támogatja a szerializált adatokat (több is van a wordpress.org bővítménytárában). Itt is először a próbamódot használja, utána pedig távolítsa el a bővítményt.
Soha ne cseréljen le olyat, mint example.com, előtte álló http:// vagy https:// nélkül: azzal az e-mail-címeket és más szövegeket is módosítaná. A teljes eljárás, terminál nélküli felhasználóknak is, a WordPress-adatbázisban végzett keresésről és cseréről szóló tudásbázis-cikkben található (lásd: További olvasnivaló).
A gyakorlatban: így néz ki egy vezérlőpulton
Példaként a DirectAdmint használjuk. Más vezérlőpultokon is van hasonló kapcsoló a „mindig https” beállításhoz.
- A domainbeállításoknál kapcsolja be az SSL kényszerítése HTTPS-átirányítással opciót (3.1. lecke).
- Válassza ki a domainnél, hogy a www a www nélküli domainre irányítson, vagy fordítva (DirectAdminban a domainbeállításoknál; egyébként átirányítással a Weboldal átirányítások menüpontban vagy a
.htaccessfájlban). - Ellenőrizze a láncot az alábbi feladattal vagy a böngészője fejlesztői eszközeivel (Hálózat lap, „Napló megőrzése” jelölőnégyzet).
Összefoglalás
- Válasszon egy kanonikus címet, és a másik három változatot 301-es (vagy 308-as) átirányítással, egy lépésben irányítsa oda.
- Csak egy szereplő irányítson át https-re; különben körbeirányítás alakul ki.
- A vegyes tartalom olyan https-oldal, amely elemeket http-n tölt be; a böngésző konzolja megmutatja, melyeket.
- Az adatbázisban lévő régi hivatkozásokat a
wp search-replaceparanccsal vagy a szerializált adatokat kezelő bővítménnyel cserélje le, soha ne egyszerű SQL REPLACE paranccsal. - Mindig előbb biztonsági mentés, és előbb próbafuttatás (
--dry-run); aguidoszlopot hagyja érintetlenül, és maradjon a WordPress tábláinál.
Kvíz
Feladat
A3.2. feladat: Egy fő cím és nincs vegyes tartalom. Adja meg a domainjét. A program megnyitja a négy változatot (http és https, www-vel és anélkül), és követi az átirányításokat. Akkor megfelelő, ha mind a négy ugyanarra a https-címre jut, változatonként legfeljebb egy átirányítással és kizárólag végleges kódokkal (301 vagy 308). Ezután a program beolvassa a kezdőlap HTML-kódját, és megkeresi azokat a szkripteket, stíluslapokat, képeket, iframe-eket és betűtípusokat, amelyek http:// címről töltődnek be.
További olvasnivaló
Ezek a cikkek a WebOké vezérlőpultjainak lépéseit írják le; más vezérlőpultokon hasonlóan működnek.
- DirectAdmin útmutató 6.4: Látogatók átirányítása https-re
- DirectAdmin útmutató 4.7: Weboldal átirányítások: egy domain vagy oldal továbbítása
- Keresés és csere a WordPress-adatbázisban
- A látogatók kötelező átirányítása https-re
- Ingyenes DNS-tanfolyam 3.4: www, átirányítás és amit a DNS nem tud
- Vegyes tartalom (MDN, angol nyelvű): https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content
- wp search-replace (developer.wordpress.org, angol nyelvű): https://developer.wordpress.org/cli/commands/search-replace/
