Modul 3 · 3.2
www, preusmeritev 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 z eno preusmeritvijo poslati nanj ter poiskati 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 zbirki, serializirani podatki
Štirje naslovi, eno spletno mesto
Vaše spletno mesto je dosegljivo na štirih naslovih:
http://example.com
http://www.example.com
https://example.com
https://www.example.comObiskovalcu je to vseeno, za iskalnike pa so to štirje različni naslovi z enako vsebino. Tudi piškotki (na primer Vaš piškotek za prijavo) veljajo za posamezno ime: kdor se prijavi na www, ni prijavljen na domeni brez www. Zato izberete en kanonični naslov (glavni naslov) in druge tri preusmerite nanj.
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 301, v enem koraku
Preusmeritev je odgovor strežnika: "ta stran je drugje". Brskalnik nato samodejno odpre novi naslov. Koda pove, za kakšno preusmeritev gre:
| Koda | Pomen | Uporaba |
|---|---|---|
| 301 | Trajno preseljeno | Običajna izbira za http na https in za www na domeno brez www (ali obratno) |
| 308 | Trajno, metoda (na primer pošiljanje obrazca) pa ostane enaka | Primerna je tudi za ta namen; brskalniki in iskalniki jo obravnavajo kot 301 |
| 302 ali 307 | Začasno | Samo za nekaj, kar je res začasno, na primer stran za vzdrževanje |
Trajna preusmeritev iskalnikom sporoči, da je novi naslov pravi. Pri začasni si zapomnijo stari naslov.
Bodite pozorni tudi na verigo. Recimo, da je Vaš glavni naslov https://example.com. Potem želite tole:
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 do glavnega naslova v enem koraku. Pogosto pa se zgodi tole:
http://www.example.com 301 https://www.example.com/
https://www.example.com 301 https://example.com/To sicer deluje, vendar zahteva dodaten korak (dodatno čakanje, predvsem na mobilnih napravah) in dodatno rokovanje TLS. Še slabši je krog: spletni strežnik preusmeri na https, WordPress preusmeri nazaj na http, ker so naslovi v nastavitvah še na http, brskalnik pa javi "preveč preusmeritev". Takrat dve nastavitvi preusmerjata druga proti drugi. Poskrbite, da na https preusmerja samo en del sistema (spletni strežnik ali upravljalni panel), in da so naslovi v WordPressu že nastavljeni na glavni naslov.
WordPress tudi sam preusmerja: če nekdo zahteva https://www.example.com/contact/, naslov spletnega mesta pa je https://example.com, ga WordPress preusmeri na https://example.com/contact/. To deluje samo, če zahteva pride do WordPressa, torej če spletni strežnik tudi ime www usmeri na to spletno mesto.
Mešana vsebina
Mešana vsebina (mixed content) je stran https, ki dele nalaga prek http://: sliko, slogovno predlogo, skripto, pisavo ali vdelan videoposnetek. Brskalnik to šteje za nevarno, ker se ti deli med prenosom lahko spremenijo.
- Skripte, slogovne predloge in iframe-e prek http brskalniki blokirajo. Vaše spletno mesto je takrat videti pokvarjeno ali kakšna funkcija ne deluje.
- Slike, zvok in video prek http skušajo sodobni brskalniki samodejno naložiti prek https; če to ne uspe, jih blokirajo. Ključavnica lahko takrat prikaže opozorilo.
Od kod prihaja:
- Stare povezave v Vaši vsebini: spletno mesto, ki je bilo nekoč na http, ima v tisočih prispevkih
<img src="http://example.com/wp-content/uploads/...">. WordPress te povezave dobesedno shrani v podatkovno zbirko. - Nastavitve teme ali vtičnika s polnim naslovom, na primer logotip ali ozadje z
http://. - Zunanji deli z drugega spletnega mesta, ki so dosegljivi samo prek http. Te morate zamenjati ali odstraniti.
- Naslovi v Nastavitve > Splošno, ki so še na http (lekcija 3.1).
Tako jo poiščete
Odprite stran, pritisnite F12 in poglejte zavihek Konzola. Brskalnik javi vsako mešano vsebino skupaj z naslovom dela. Lahko pa v izvorni kodi strani (Ctrl+U) poiščete src="http:// in href="http://. Povezave na druga spletna mesta v navadnem besedilu (<a href="http://...">) ne povzročajo mešane vsebine; gre za stvari, ki jih stran naloži.
Iskanje in zamenjava, a pravilno
Rešitev za stare povezave v Vaši vsebini je, da v podatkovni zbirki vse http://example.com zamenjate z https://example.com. Mamljiv je ukaz SQL, 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 goli zamenjavi ima besedilo 28 znakov (dodan je s), zapisano pa je še vedno 27. PHP vrednosti potem ne more več prebrati in nastavitev tiho izgine: prazen meni, izginil logotip, manjkajoči gradniki.
Uporabite orodje, ki te dolžine posodobi, in vedno najprej naredite varnostno kopijo (lekcija 8.1): iskanje in zamenjava nima koša.
- WP-CLI: najprej poglejte, nato izvedite. V terminalu se premaknite v mapo svojega WordPressa in najprej zaženite poskusni zagon (prva vrstica), šele nato pravega (druga vrstica).
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=guidZ --dry-run vidite, koliko zamenjav bi bilo v posamezni tabeli, ne da bi kar koli spremenili. --skip-columns=guid pusti pri miru stalne oznake prispevkov (stolpec guid); WordPress priporoča, da jih nikoli ne spreminjate. Brez dodatne možnosti WP-CLI deluje samo na tabelah WordPressa. Če ima vtičnik lastne tabele z enako predpono, dodajte --all-tables-with-prefix. --all-tables uporabite samo, če veste, zakaj: zajame vsako tabelo v podatkovni zbirki, tudi tabele drugega spletnega mesta ali aplikacije.
- Vtičnik za iskanje in zamenjavo, ki podpira serializirane podatke (v imeniku vtičnikov na wordpress.org jih je več). Tudi tam najprej uporabite poskusni način, nato vtičnik spet odstranite.
Nikoli ne zamenjujte nečesa, kot je example.com, brez http:// ali https:// pred tem: tako bi spremenili tudi e-poštne naslove in druga besedila. Celoten postopek, tudi za tiste brez terminala, je opisan v članku iz baze znanja o iskanju in zamenjavi v podatkovni zbirki WordPress (glejte Dodatno branje).
V praksi: tako je videti v upravljalnem panelu
Kot primer uporabljamo DirectAdmin. Drugi paneli imajo podobno stikalo za "vedno https".
- V nastavitvah domene vklopite Prisilite SSL s https preusmeritvijo (lekcija 3.1).
- Pri domeni izberite, ali naj www vodi na domeno brez www ali obratno (v DirectAdminu v nastavitvah domene; sicer s preusmeritvijo prek Preusmeritve spletišč ali
.htaccess). - Preverite verigo z nalogo spodaj ali z razvijalskimi orodji brskalnika (zavihek Omrežje, potrditveno polje "Ohrani dnevnik").
Povzetek
- Izberite en kanonični naslov in druge tri različice nanj preusmerite s 301 (ali 308), v enem koraku.
- Na https naj preusmerja samo en del sistema; sicer dobite krog.
- Mešana vsebina je stran https, ki dele nalaga prek http; konzola brskalnika pokaže, katere.
- Stare povezave v podatkovni zbirki zamenjate z
wp search-replaceali z vtičnikom, ki razume serializirane podatke, nikoli z golim SQL REPLACE. - Vedno najprej varnostna kopija in najprej poskusni zagon (
--dry-run); stolpecguidpustite pri miru in ostanite pri tabelah WordPressa.
Kviz
Naloga
Naloga A3.2: En glavni naslov in brez mešane vsebine. Vnesite svojo domeno. Program odpre štiri različice (http in https, z www in brez njega) in sledi preusmeritvam. Pravilno je: vse štiri pridejo na isti naslov 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 predloge, slike, iframe-e in pisave, ki se nalagajo prek http://.
Dodatno branje
Ti članki opisujejo korake v panelih WebOké; v drugih panelih delujejo podobno.
- Priročnik DirectAdmin 6.4: Obiskovalce vedno preusmerite na https
- Priročnik DirectAdmin 4.7: Preusmeritve spletišč: preusmeritev domene ali strani
- Iskanje in zamenjava v podatkovni bazi WordPress
- Obvezna preusmeritev obiskovalcev na https
- Brezplačen DNS tečaj 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/
