Modul 4 · 4.1
https in pravilna preusmeritev
Modul 4: Hitrost, mobilne naprave in https · Čas branja: 11 min
Učni cilj: Po tej lekciji boste znali razložiti, zakaj je https pomemben za iskalnike in obiskovalce, poimenovati razliko med trajno in začasno preusmeritvijo ter preveriti, ali vse različice Vašega naslova v enem koraku pridejo na isto stran https.
Ključni pojmi: https, certifikat, preusmeritev (redirect), 301 in 308 (trajno), 302 in 307 (začasno), veriga preusmeritev, prednostni naslov, z www ali brez www, HSTS, mešana vsebina
Štirje naslovi za eno domačo stran
Ko v naslovno vrstico vpišete ime spletnega mesta, lahko Vaš brskalnik pride na štiri mesta:
| Različica | Primer |
|---|---|
| http brez www | http://example.com/ |
| http z www | http://www.example.com/ |
| https brez www | https://example.com/ |
| https z www | https://www.example.com/ |
Za Vas je to eno spletno mesto. Za iskalnik so to štirje različni naslovi. Če vsi štirje prikažejo isto stran, mora Google sam izbrati, kateri je "pravi" naslov. Google temu pravi kanonični naslov (lekcija 3.5 to podrobneje obravnava). Google priporoča, da sami izberete en naslov kot prednostni naslov in druge različice preusmerite nanj. Tako ni dvoma, povezave na katero koli različico pa štejejo za isto stran.
Bloemenatelier Lotte izbere https://www.example.com/. Druge tri različice preusmerijo tja. Ali izberete naslov z www ali brez njega, za iskalnike ni pomembno. Pomembno je, da se odločite enkrat in to odločitev upoštevate povsod: v meniju, zemljevidu spletnega mesta, oznaki canonical in poslovnem profilu.
Zakaj https
https pomeni, da je povezava med brskalnikom in strežnikom šifrirana s certifikatom. Nihče vmes ne more prisluškovati ali česa spremeniti na strani, na primer v javnem omrežju wifi.
Za iskalnike https šteje na dva načina:
- Kot signal. Google je leta 2014 objavil, da je https signal za razvrščanje, a ga je takrat označil za "zelo šibek signal", ki ima manjšo težo kot dobra vsebina. V dokumentaciji o izkušnji na strani je https eno od vprašanj, ki si jih morate zastaviti ("ali se Vaše strani dostavljajo varno?"). Ne pretiravajte torej: samo https Vas ne bo pripeljal na vrh.
- Za obiskovalce. Brskalniki pri strani na http prikažejo oznako "Ni varno", še posebej pri obrazcu. Obiskovalec, ki to vidi, hitreje odide. To opazite pri obisku, ne pri pravilu razvrščanja.
Veljaven certifikat lahko danes brezplačno dobite prek Let's Encrypt. Pri večini ponudnikov gostovanja, tudi pri WebOké, se samodejno naroči in podaljšuje. Pazite, da certifikat pokriva obe imeni: brez www in z njim. Če pokriva le example.com, naslov https://www.example.com/ javi napako certifikata, še preden pride do preusmeritve.
Trajna ali začasna preusmeritev
Preusmeritev (redirect) je odgovor strežnika: "ta stran je drugje". To se zgodi s trimestno statusno kodo, ki se začne s 3, in glavo Location z novim naslovom.
| Koda | Pomen | Kaj Google naredi z njo |
|---|---|---|
| 301 | Trajno premaknjeno | Močan signal, da je cilj kanonični naslov |
| 308 | Trajno premaknjeno (metoda ostane enaka) | Enako kot 301 |
| 302 | Začasno najdeno | Ni signala; stari naslov pogosto ostane v rezultatih |
| 307 | Začasno (metoda ostane enaka) | Enako kot 302 |
Po navedbah Google Search Central indeksiranje uporabi trajno preusmeritev kot signal, da naj cilj postane kanoničen. Pri začasni preusmeritvi se to ne zgodi: stari naslov običajno ostane v rezultatih. Prehod s http na https in izbira med www in brez www sta trajni stanji. Uporabite torej 301 ali 308.
Preusmeritev si lahko ogledate sami. V terminalu:
$ curl -sI http://example.com/
HTTP/1.1 301 Moved Permanently
Location: https://www.example.com/Ali v brskalniku: odprite orodja za razvijalce (F12), zavihek Omrežje, vklopite možnost, ki ohrani dnevnik ob nalaganju nove strani, in naložite naslov http. Videli boste vsak korak z njegovo kodo.
Verige preusmeritev
Veriga preusmeritev je preusmeritev na naslov, ki sam spet preusmerja. Pogost primer:
http://example.com/ 301 → https://example.com/
https://example.com/ 301 → https://www.example.com/
https://www.example.com/ 200To deluje, vendar ob vsakem prvem obisku zahteva dodatno pot do strežnika in nazaj. web.dev navaja preusmeritve kot enega od vzrokov za počasen prvi odziv strežnika (lekcija 4.3): vsak korak se sešteva, verige pa še bolj. Bolje je, da vsaka različica v enem koraku pride na prednostni naslov:
http://example.com/ 301 → https://www.example.com/
http://www.example.com/ 301 → https://www.example.com/
https://example.com/ 301 → https://www.example.com/
https://www.example.com/ 200Pri starem naslovu http z drugim imenom to ne uspe vedno v enem koraku, ker strežnik pri nekaterih nastavitvah najprej preusmeri na https z istim imenom in šele nato na drugo ime. Dva koraka sta v tem primeru sprejemljiva; trije ali več so razlog, da preverite nastavitve. Zanka (A preusmeri na B, B spet na A) je vedno napaka: stran se takrat sploh ne odpre.
HSTS: brskalnik si zapomni
HSTS (HTTP Strict Transport Security, RFC 6797) je glava, ki jo strežnik pošlje prek https:
Strict-Transport-Security: max-age=31536000Brskalnik, ki je to enkrat videl, gre nato za to spletno mesto sam takoj na https, ne da bi najprej poskusil http. Tako odpade prva preusmeritev, hkrati pa je to zaščita pred prisluškovanjem. web.dev HSTS navaja tudi kot način, da se izognete preusmeritvi s http na https. Za iskalnike HSTS ni signal; za Vaše obiskovalce je izboljšava. Vklopite ga šele, ko https pravilno deluje na vseh imenih, saj si ga brskalnik zapomni za toliko časa, kot določa max-age. Tečaj Varno na spletu to obravnava podrobneje.
Mešana vsebina
Stran https, ki sliko, skripto ali slogovno datoteko naloži prek http://, ima mešano vsebino (mixed content). Brskalniki nevarne skripte in slogovne datoteke blokirajo ali prikažejo opozorilo. Po prehodu na https to pogosto opazite pri starih slikah v besedilih ali pri temi s fiksnimi naslovi. V izvorni kodi poiščite src="http:// in href="http:// ter jih zamenjajte s https ali z relativnim naslovom.
V praksi: nastavitev preusmeritve na https
Pri paketu gostovanja WebOké preusmeritev na https vklopite v DirectAdmin pri nastavitvah domene (stikalo "Prisilite SSL s https preusmeritvijo"), na isti strani pa pri "Prisilna preusmeritev" izberete, ali uporabljate naslov z www ali brez njega. Preusmeritev nastavite na enem mestu: dve pravili, ki vsako naredi nekaj drugega (na primer v nadzorni plošči in v vtičniku), zlahka povzročita zanko. Spletno mesto, izdelano z AI Builder, ob objavi dobi certifikat in svoj naslov. V WordPress-i pri Nastavitve, Splošno vpišete Naslov WordPress (URL) in Naslov spletišča (URL) z https:// in izbranim imenom; samo preusmeritev uredite na strežniku. Pri drugih ponudnikih in graditeljih spletnih strani deluje podobno, le gumbi se imenujejo drugače.
Če želite to urediti prek .htaccess (Apache ali LiteSpeed), naslednje pravilo vse različice v enem koraku preusmeri na https://www.example.com:
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^ https://www.example.com%{REQUEST_URI} [R=301,L]Nato vedno preverite vse štiri različice, tudi s potjo za naslovom (http://example.com/contact): pot se mora ohraniti in ne sme skočiti na domačo stran.
Povzetek
- Izberite en prednostni naslov (https, z www ali brez) in nanj preusmerite druge različice.
- Za trajne preusmeritve uporabite 301 ali 308; 302 in 307 sta začasni in Googlu ne dajeta signala o kanoničnem naslovu.
- Poskrbite, da vsaka različica pride na prednostni naslov v enem koraku, največ v dveh; verige stanejo čas, zanke pa spletno mesto pokvarijo.
- https je po Googlu šibek signal za razvrščanje; za obiskovalce gre predvsem za zaupanje. Certifikat mora pokrivati obe imeni.
- HSTS poskrbi, da brskalnik sam gre na https; mešano vsebino po prehodu počistite.
Kviz
Naloga
Naloga A4.1: Ali vse v enem koraku preusmeri na https? Vpišite ime svoje domene (brez www). Program preizkusi vse štiri različice (http in https, z www in brez), sledi vsaki preusmeritvi korak za korakom in preveri certifikat obeh imen. Za vsako različico vidite verigo s statusnimi kodami, ali vse pridejo na isti naslov https in ali obstaja glava HSTS. Nimate svojega spletnega mesta? Uporabite rijksoverheid.nl.
Za nadaljnje branje
Koraki v teh člankih veljajo za nadzorne plošče WebOké; pri drugih ponudnikih deluje podobno.
- Priročnik DirectAdmin 6.4: Obiskovalce vedno preusmerite na https
- Priročnik DirectAdmin 4.3: Nastavitve domene: SSL, PHP, www in private_html
- Priročnik DirectAdmin 6.3: Certifikat za www, poddomene in nadomestni certifikat
- Obvezna preusmeritev obiskovalcev na https
- Brezplačen DNS tečaj 3.4: www, preusmeritve in kaj DNS ne počne
- Google Search Central, Redirects and Google Search: https://developers.google.com/search/docs/crawling-indexing/301-redirects
- Google Search Central Blog, HTTPS as a ranking signal (2014): https://developers.google.com/search/blog/2014/08/https-as-ranking-signal
- RFC 6797 (HSTS): https://www.rfc-editor.org/rfc/rfc6797
