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: E lecke után Ön képes lesz kiválasztani egy fő címet, az összes változatot egyetlen átirányítással oda irányítani, valamint felismerni és megoldani a vegyes tartalom problémáját.
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ó számára ez nem számít, de a keresőmotorok szempontjából 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évhez kötöttek: aki a www címen jelentkezik be, az nincs bejelentkezve a www nélküli néven. Ezért érdemes kiválasztani egy kanonikus címet (a fő címet), és a másik hármat oda átirányítani.
Hogy melyiket választja, ízlés kérdése (2.1 lecke). A lényeg, hogy a fő cím mindenhol azonos legyen: a DNS-ben, a tanúsítványban, a Beállítások > Általános menüpontban (3.1 lecke) és az átirányításokban is.
Átirányítás 301-es kóddal, 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 automatikusan az új címre lép. A kód mutatja meg, milyen típusú átirányításról van szó:
| Kód | Jelentés | Használat |
|---|---|---|
| 301 | Véglegesen áthelyezve | A szokásos választás http-ről https-re, valamint www-ről a www nélküli névre (vagy fordítva) |
| 308 | Végleges, és a metódus (például egy űrlapbeküldés) változatlan marad | Erre a célra is használható; a böngészők és keresőmotorok 301-ként kezelik |
| 302 vagy 307 | Ideiglenes | Csak valóban ideiglenes esetekre, például 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ás esetén 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. Ebben az esetben a következőt szeretné elérni:
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 jusson el a fő címre. Gyakran ez történik:
http://www.example.com 301 https://www.example.com/
https://www.example.com 301 https://example.com/Ez is működik, de egy plusz lépésbe kerül (extra várakozási idő, különösen mobilon) és egy plusz TLS kézfogásba. Rosszabb egy körbenjáró átirányítás: a webszerver https-re irányít, a WordPress visszairányít http-re, mert a beállításokban még http szerepel, és a böngésző "túl sok átirányítás" hibát jelez. Ilyenkor két beállítás egymás ellen dolgozik. Ügyeljen rá, hogy csak egyetlen fél irányítson át https-re (a webszerver vagy a vezérlőpult), és hogy a WordPress beállításaiban már a fő cím szerepeljen.
A WordPress saját 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ítja 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 irányítja.
Vegyes tartalom
A vegyes tartalom (mixed content) olyan https oldal, amely egyes elemeit http:// címen keresztül tölti be: egy képet, egy stíluslapot, egy szkriptet, egy betűtípust vagy egy beágyazott videót. A böngésző ezt nem tartja biztonságosnak, mert ezek az elemek útközben megváltoztathatók.
- A http-n keresztül betöltött szkripteket, stíluslapokat és iframe-eket a böngészők blokkolják. Emiatt a weboldal törötten jelenhet meg, vagy egy funkció nem működik.
- A http-n keresztüli képeket, hangfájlokat és videókat a modern böngészők automatikusan megpróbálják https-en keresztül betölteni; ha ez nem sikerül, blokkolják őket. Ilyenkor a lakat ikon figyelmeztetést jeleníthet meg.
Honnan ered ez a probléma:
- Régi hivatkozások a tartalomban: egy weboldal, amely korábban http-n futott, több ezer bejegyzésben tartalmazhat ilyet:
<img src="http://example.com/wp-content/uploads/...">. A WordPress ezeket a hivatkozásokat szó szerint elmenti az adatbázisba. - Sablon vagy bővítmény beállításai teljes címmel, például egy logó vagy háttérkép
http://címmel. - Külső elemek egy másik weboldalról, amelyek csak http-n keresztül érhetők el. Ezeket ki kell cserélni vagy el kell távolítani.
- A Beállítások > Általános menüpontban megadott címek, amelyek még http-n állnak (3.1 lecke).
Hogyan találja meg
Nyissa meg az oldalt, nyomja meg az F12 billentyűt, és nézze meg a Console (Konzol) fület. A böngésző minden vegyes tartalmat jelez, az adott elem címével együtt. Vagy keressen az oldal forráskódjában (Ctrl+U) a src="http:// és href="http:// kifejezésekre. A sima szöveges hivatkozások más weboldalakra (<a href="http://...">) nem minősülnek vegyes tartalomnak; itt azokról a dolgokról van szó, amelyeket az oldal betölt.
Keresés és csere, de helyesen
A tartalomban lévő régi hivatkozások megoldása az, hogy az adatbázisban minden http://example.com előfordulást lecserélünk erre: https://example.com. A kísértés egy ilyen SQL-parancs:
UPDATE wp_options SET option_value = REPLACE(option_value, 'http://example.com', 'https://example.com');Ezt ne tegye. A sablonok, bővítmények és widgetek sok beállítása szerializált formában van tárolva. Ez így néz ki:
s:27:"http://example.com/logo.png";Az s:27 azt jelenti: itt egy 27 karakter hosszú szöveg következik. Egy egyszerű cserét követően a szöveg 28 karakter hosszú lesz (egy s betűvel megnövekszik), de a szám továbbra is 27 marad. A PHP ekkor már nem tudja beolvasni az értéket, és a beállítás szó nélkül eltűnik: üres menü, elveszett logó, eltűnt widgetek lehetnek a következmény.
Használjon olyan eszközt, amely ezeket a hosszértékeket is frissíti:
- WP-CLI: előbb ellenőrizze, majd hajtsa végre.
wp search-replace 'http://example.com' 'https://example.com' --all-tables --dry-run
wp search-replace 'http://example.com' 'https://example.com' --all-tablesA --dry-run paranccsal láthatja, hány cserét hajtana végre táblánként, anélkül hogy bármit is megváltoztatna.
- Keresés és csere bővítmény, amely támogatja a szerializált adatokat (ilyenből több is található a wordpress.org bővítménytárában). A bővítményt a használat után távolítsa el.
Mindig készítsen előbb biztonsági mentést (8.1 lecke). Soha ne cseréljen le olyasmit, mint például example.com, a http:// előtag nélkül: ezzel ugyanis e-mail címeket és egyéb szövegeket is érintene.
Gyakorlatban: így néz ki egy vezérlőpulton
Példaként a DirectAdmin szolgál. Más vezérlőpultokon hasonló kapcsoló található az "mindig https" beállításra.
- A domain beállításainál kapcsolja be a SSL kényszerítése HTTPS-átirányítással funkciót (3.1 lecke).
- A domainnél válassza ki, hogy a www a www nélküli névre irányítson-e, vagy fordítva (DirectAdminnél a domain beállításainál; egyébként egy átirányítással a Weboldal átirányítások menüponton keresztül, vagy a
.htaccessfájlban). - Ellenőrizze a láncot az alábbi paranccsal, vagy a böngésző fejlesztői eszközeivel (Hálózat fül, "Napló megőrzése" jelölőnégyzet).
Összefoglalás
- Válasszon egy kanonikus címet, és a másik három változatot egy 301-es (vagy 308-as) átirányítással, egy lépésben oda irányítsa.
- Csak egyetlen fél irányítson át https-re; különben körbenjáró átirányítás alakul ki.
- A vegyes tartalom olyan https oldal, amely egyes elemeit http-n keresztül tölti be; a böngésző konzolja megmutatja, melyeket.
- Az adatbázisban lévő régi hivatkozásokat a
wp search-replaceparanccsal vagy egy szerializált adatokat kezelő bővítménnyel cserélje le, soha ne egyszerű SQL-REPLACE paranccsal. - Mindig készítsen előbb biztonsági mentést, és először próbakört.
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. Jó eredmény, ha mind a négy ugyanarra a https címre fut ki, változatonként legfeljebb egy átirányítással, és csak végleges kódokkal (301 vagy 308). Ezután a program beolvassa a kezdőlap HTML-kódját, és megkeresi a szkripteket, stíluslapokat, képeket, iframe-eket és betűtípusokat, amelyeket a weboldal http:// címen keresztül tölt be.
További olvasnivaló
Ezek a cikkek a WebOké vezérlőpultjain található lépéseket mutatják be; más vezérlőpultokon hasonlóan működik.
- DirectAdmin útmutató 6.4: Látogatók átirányítása mindig HTTPS-re
- DirectAdmin útmutató 4.7: Weboldal átirányítások: domén vagy oldal továbbítása
- A látogatók kötelező átirányítása https protokollra
- Ingyenes DNS-tanfolyam 3.4: www, átirányítás és amit a DNS nem tud
- Vegyes tartalom (MDN, angol nyelven): https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content
- wp search-replace (developer.wordpress.org, angol nyelven): https://developer.wordpress.org/cli/commands/search-replace/
