Modul 3 · 3.2
www, preusmeritve in mešana vsebina
Modul 3: Naslov, https in uporabniki · Čas branja: 9 minut
Učni cilj: Po tej lekciji boste znali izbrati en glavni naslov, vse različice preusmeriti vanj z eno preusmeritvijo ter odkriti in odpraviti mešano vsebino.
Ključni pojmi: kanonični naslov, 301 in 308, veriga preusmeritev, mešana vsebina (mixed content), iskanje in zamenjava v podatkovni bazi, serializirani podatki
Štirje naslovi, eno spletno mesto
Vaše spletno mesto je dosegljivo prek štirih naslovov:
http://example.com
http://www.example.com
https://example.com
https://www.example.comZa obiskovalca to ni pomembno, vendar so za iskalnike to štirje različni naslovi z enako vsebino. Tudi piškotki (na primer Vaš piškotek za prijavo) veljajo za vsako ime posebej: kdor se prijavi na www, ni prijavljen na domeni brez www. Zato izberete en kanonični naslov (glavni naslov) in druge tri preusmerite vanj.
Katerega izberete, je stvar okusa (lekcija 2.1). Pomembno je, da je glavni naslov povsod enak: v DNS, v certifikatu, v Nastavitve > Splošno (lekcija 3.1) in v preusmeritvah.
Preusmeritev s kodo 301, v enem koraku
Preusmeritev je odgovor strežnika: "ta stran je nekje drugje". Brskalnik nato samodejno odide na nov naslov. Koda pove, za kakšno vrsto preusmeritve gre:
| Koda | Pomen | Uporaba |
|---|---|---|
| 301 | Trajno preseljeno | Stalna izbira za preusmeritev s http na https in z www na domeno brez www (ali obratno) |
| 308 | Trajno, pri čemer metoda (na primer oddaja obrazca) ostane enaka | Lahko se uporabi tudi v ta namen; brskalniki in iskalniki jo obravnavajo enako kot 301 |
| 302 ali 307 | Začasno | Samo za nekaj, kar je resnično začasno, na primer stran za vzdrževanje |
Trajna preusmeritev iskalnikom pove, da je nov naslov pravi. Pri začasni preusmeritvi si zapomnijo stari naslov.
Bodite pozorni tudi na verigo. Recimo, da je Vaš glavni naslov https://example.com. Potem želite:
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 200Vsaka različica pride na glavni naslov v enem koraku. Pogosto se zgodi naslednje:
http://www.example.com 301 https://www.example.com/
https://www.example.com 301 https://example.com/To sicer deluje, vendar zahteva dodaten korak (dodaten čas čakanja, zlasti na mobilnih napravah) in dodatno rokovanje TLS. Hujši je krog: spletni strežnik preusmeri na https, WordPress preusmeri nazaj na http, ker so naslovi v nastavitvah še vedno na http, brskalnik pa javi "preveč preusmeritev". Takrat dve nastavitvi delujeta druga proti drugi. Poskrbite, da samo ena stran preusmerja na https (spletni strežnik ali nadzorna plošča) in da so naslovi v WordPressu že nastavljeni na glavni naslov.
WordPress tudi sam preusmerja: če nekdo zahteva https://www.example.com/contact/, medtem ko je naslov spletnega mesta https://example.com, WordPress preusmeri na https://example.com/contact/. To deluje samo, če zahteva pride do WordPressa, torej če spletni strežnik ime www prav tako usmerja na to spletno mesto.
Mešana vsebina
Mešana vsebina (mixed content) je https-stran, ki nalaga dele prek http://: sliko, slogovno datoteko, skript, pisavo ali vdelan video. Brskalnik to šteje za nevarno, ker se taki deli lahko spremenijo med prenosom.
- Skripti, slogovne datoteke in vdelani okvirji (iframe) prek http so s strani brskalnikov blokirani. Spletno mesto je videti pokvarjeno ali pa funkcija ne deluje.
- Slike, zvok in video prek http sodobni brskalniki poskušajo samodejno pridobiti prek https; če to ne uspe, so blokirani. Ključavnica lahko tedaj prikaže opozorilo.
Od kod to izvira:
- Stare povezave v Vaši vsebini: spletno mesto, ki je nekoč delovalo na http, ima v tisočih prispevkih zapisano
<img src="http://example.com/wp-content/uploads/...">. WordPress take povezave dobesedno shrani v podatkovno bazo. - Nastavitve teme ali vtičnika s polnim naslovom, na primer logotip ali ozadje z
http://. - Zunanji elementi z drugega spletnega mesta, ki so dosegljivi samo prek http. Te morate zamenjati ali odstraniti.
- Naslovi v Nastavitve > Splošno, ki so še vedno nastavljeni na http (lekcija 3.1).
Kako to odkrijete
Odprite stran, pritisnite F12 in poglejte v zavihek Console. Brskalnik javi vsako mešano vsebino z naslovom elementa. Lahko tudi v izvorni kodi strani (Ctrl+U) poiščete src="http:// in href="http://. Navadne povezave do drugih spletnih mest v besedilu (<a href="http://...">) ne pomenijo mešane vsebine; gre za stvari, ki jih stran nalaga.
Iskanje in zamenjava, a pravilno
Rešitev za stare povezave v Vaši vsebini je, da vse pojavitve http://example.com v podatkovni bazi zamenjate s https://example.com. Skušnjava je uporabiti SQL-ukaz, kot je:
UPDATE wp_options SET option_value = REPLACE(option_value, 'http://example.com', 'https://example.com');Tega ne storite. Veliko nastavitev tem, vtičnikov in gradnikov je shranjenih serializirano. To je videti takole:
s:27:"http://example.com/logo.png";s:27 pomeni: sledi besedilo dolžine 27 znakov. Po golem zamenjavi je besedilo dolgo 28 znakov (dodala se je črka s), vendar še vedno piše 27. PHP tedaj vrednosti ne more več prebrati in nastavitev tiho izgine: prazen meni, izginul logotip, gradniki, ki jih ni več.
Uporabite orodje, ki te dolžine samodejno posodobi:
- WP-CLI: najprej preverite, nato izvedite.
wp search-replace 'http://example.com' 'https://example.com' --all-tables --dry-run
wp search-replace 'http://example.com' 'https://example.com' --all-tablesZ --dry-run vidite, koliko zamenjav bi bilo po posamezni tabeli, ne da bi se karkoli dejansko spremenilo.
- Vtičnik za iskanje in zamenjavo, ki podpira serializirane podatke (več jih je v mapi vtičnikov na wordpress.org). Po uporabi vtičnik spet odstranite.
Pred tem vedno naredite varnostno kopijo (lekcija 8.1). Nikoli ne zamenjujte nečesa, kot je example.com brez predhodnega http://: s tem bi spremenili tudi e-poštne naslove in druga besedila.
V praksi: kako je to videti v nadzorni plošči
Kot primer uporabljamo DirectAdmin. Druge nadzorne plošče imajo podobno stikalo za "vedno https".
- Pri nastavitvah domene vklopite Prisilite SSL s https preusmeritvijo (lekcija 3.1).
- Pri domeni izberite, ali naj se www preusmeri na domeno brez www ali obratno (pri DirectAdminu v nastavitvah domene; sicer s preusmeritvijo prek Preusmeritve spletišč ali
.htaccess). - Preverite verigo z ukazom spodaj ali z razvijalskimi orodji Vašega brskalnika (zavihek Omrežje, kljukica "Ohrani dnevnik").
Povzetek
- Izberite en kanonični naslov in druge tri različice preusmerite vanj z 301 (ali 308), v enem koraku.
- Poskrbite, da samo ena stran preusmerja na https; sicer nastane krog.
- Mešana vsebina je https-stran, ki dele nalaga prek http; konzola brskalnika pokaže, katere.
- Stare povezave v podatkovni bazi zamenjajte z
wp search-replaceali vtičnikom, ki razume serializirane podatke, nikoli z golim SQL-ukazom REPLACE. - Vedno najprej naredite varnostno kopijo in najprej izvedite poskusni krog.
Kviz
Naloga
Naloga A3.2: En glavni naslov in brez mešane vsebine. Vnesite svojo domeno. Program odpre vse štiri različice (http in https, z in brez www) ter sledi preusmeritvam. Dobro je: vse štiri različice se končajo na istem naslovu s https, z največ eno preusmeritvijo na različico in samo s trajnimi kodami (301 ali 308). Nato program prebere HTML domače strani in poišče skripte, slogovne datoteke, slike, vdelane okvirje (iframe) in pisave, ki se nalagajo prek http://.
Dodatno branje
Ti članki opisujejo korake v nadzornih ploščah WebOké; v drugih nadzornih ploščah delujejo podobno.
- Priročnik DirectAdmin 6.4: Obiskovalce vedno preusmerite na https
- Priročnik DirectAdmin 4.7: Preusmeritev spletišča: posredovanje domene ali strani
- Obvezno preusmerjanje obiskovalcev na https
- Brezplačen tečaj DNS 3.4: www, preusmeritve in kaj DNS ne počne
- Mešana vsebina (MDN, angleško): https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content
- wp search-replace (developer.wordpress.org, angleško): https://developer.wordpress.org/cli/commands/search-replace/
