4 modulis · 4.1
https ir tinkamas nukreipimas
4 modulis: Greitis, mobilieji įrenginiai ir https · Skaitymo laikas: 11 min.
Mokymosi tikslas: Po šios pamokos galėsite paaiškinti, kodėl https svarbus paieškos sistemoms ir lankytojams, įvardyti nuolatinio ir laikino nukreipimo skirtumą ir patikrinti, ar visi Jūsų adreso variantai vienu žingsniu patenka į tą patį https puslapį.
Pagrindinės sąvokos: https, sertifikatas, nukreipimas (redirect), 301 ir 308 (nuolatinis), 302 ir 307 (laikinas), nukreipimų grandinė, pageidaujamas adresas, su www ar be www, HSTS, mišrus turinys
Keturi adresai vienam pagrindiniam puslapiui
Kai adreso juostoje įvedate svetainės pavadinimą, naršyklė gali patekti į keturias vietas:
| Variantas | Pavyzdys |
|---|---|
| http be www | http://example.com/ |
| http su www | http://www.example.com/ |
| https be www | https://example.com/ |
| https su www | https://www.example.com/ |
Jums tai viena svetainė. Paieškos sistemai tai keturi skirtingi adresai. Jei visi keturi rodo tą patį puslapį, Google pati turi nuspręsti, kuris adresas yra „tikrasis“. Google jį vadina kanoniniu adresu (plačiau apie tai 3.5 pamokoje). Google rekomenduoja pačiam pasirinkti vieną adresą kaip pageidaujamą adresą ir kitus variantus nukreipti į jį. Tada neliks abejonių, o nuorodos į bet kurį variantą bus įskaitomos tam pačiam puslapiui.
Bloemenatelier Lotte pasirenka https://www.example.com/. Kiti trys variantai nukreipiami į jį. Paieškos sistemoms nesvarbu, ar pasirinksite adresą su www, ar be jo. Svarbu pasirinkti vieną variantą ir jo laikytis visur: meniu, svetainės schemoje, canonical nuorodoje ir įmonės profilyje.
Kodėl https
https reiškia, kad ryšys tarp naršyklės ir serverio yra užšifruotas naudojant sertifikatą. Niekas pakeliui negali skaityti duomenų ar ką nors pakeisti puslapyje, pavyzdžiui, viešajame Wi-Fi tinkle.
Paieškos sistemoms https svarbus dviem būdais:
- Kaip signalas. 2014 m. Google paskelbė, kad https yra reitingavimo signalas, tačiau tada jį pavadino „labai lengvu signalu“, kuris sveria mažiau nei geras turinys. Dokumentacijoje apie puslapio patirtį https minimas kaip vienas iš klausimų, kuriuos turėtumėte sau užduoti („ar Jūsų puslapiai pateikiami saugiai?“). Tad nepervertinkite: vien https Jūsų neiškels į pirmąsias vietas.
- Lankytojams. Naršyklės prie http puslapio rodo „Nesaugu“, ypač jei puslapyje yra forma. Tai pamatęs lankytojas greičiau išeina. Tai pastebėsite lankomumo duomenyse, o ne reitingavimo taisyklėje.
Galiojantį sertifikatą šiandien galima gauti nemokamai per Let's Encrypt. Daugumoje prieglobos bendrovių, taip pat ir WebOké, jis užsakomas ir atnaujinamas automatiškai. Atkreipkite dėmesį, kad sertifikatas turi apimti abu pavadinimus: be www ir su juo. Jei jis apima tik example.com, adresas https://www.example.com/ parodys sertifikato klaidą dar prieš įvykstant nukreipimui.
Nuolatinis ar laikinas nukreipimas
Nukreipimas (redirect) yra serverio atsakymas: „šis puslapis yra kitur“. Tam naudojamas triženklis būsenos kodas, prasidedantis skaitmeniu 3, ir antraštės eilutė Location su nauju adresu.
| Kodas | Reikšmė | Ką su juo daro Google |
|---|---|---|
| 301 | Perkelta visam laikui | Stiprus signalas, kad tikslas yra kanoninis adresas |
| 308 | Perkelta visam laikui (metodas nesikeičia) | Tas pats kaip 301 |
| 302 | Laikinai rasta kitur | Signalo nėra; senas adresas dažnai lieka rezultatuose |
| 307 | Laikinai (metodas nesikeičia) | Tas pats kaip 302 |
Pasak Google Search Central, indeksuojant nuolatinis nukreipimas naudojamas kaip signalas, kad tikslas turi tapti kanoniniu. Laikino nukreipimo atveju taip nėra: senas adresas paprastai lieka rezultatuose. Perėjimas iš http į https ir pasirinkimas su www ar be www yra nuolatiniai sprendimai. Todėl naudokite 301 arba 308.
Nukreipimą galite pamatyti patys. Terminale:
$ curl -sI http://example.com/
HTTP/1.1 301 Moved Permanently
Location: https://www.example.com/Arba naršyklėje: atidarykite kūrėjo įrankius (F12), skirtuką „Tinklas“ (Network), įjunkite parinktį, kuri išsaugo žurnalą įkeliant naują puslapį, ir įkelkite http adresą. Pamatysite kiekvieną žingsnį su jo kodu.
Nukreipimų grandinės
Nukreipimų grandinė yra nukreipimas į adresą, kuris pats vėl nukreipia toliau. Dažnas pavyzdys:
http://example.com/ 301 → https://example.com/
https://example.com/ 301 → https://www.example.com/
https://www.example.com/ 200Tai veikia, tačiau per kiekvieną pirmąjį apsilankymą reikia papildomai nueiti iki serverio ir atgal. web.dev nukreipimus įvardija kaip vieną iš lėto pirmojo serverio atsako priežasčių (4.3 pamoka): kiekvienas žingsnis prideda laiko, o grandinės dar daugiau. Geriau, kai kiekvienas variantas vienu žingsniu patenka į pageidaujamą adresą:
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/ 200Senam http adresui su kitu pavadinimu tai ne visada pavyksta vienu žingsniu, nes esant kai kuriems nustatymams serveris pirmiausia nukreipia į to paties pavadinimo https ir tik tada į kitą pavadinimą. Tokiu atveju du žingsniai yra priimtini; trys ar daugiau yra priežastis peržiūrėti nustatymus. Ciklas (A nukreipia į B, B vėl nukreipia į A) visada yra klaida: tada puslapis visai neatsidaro.
HSTS: naršyklė tai įsimena
HSTS (HTTP Strict Transport Security, RFC 6797) yra antraštės eilutė, kurią serveris siunčia per https:
Strict-Transport-Security: max-age=31536000Naršyklė, kartą ją pamačiusi, vėliau šiai svetainei iškart pati naudoja https, nebandydama pirmiau http. Taip išvengiama pirmojo nukreipimo ir apsisaugoma nuo pasiklausančiųjų. web.dev HSTS taip pat nurodo kaip būdą išvengti nukreipimo iš http į https. Paieškos sistemoms HSTS nėra signalas; lankytojams tai patobulinimas. Įjunkite jį tik tada, kai https gerai veikia visais pavadinimais, nes naršyklė tai įsimena tiek laiko, kiek nurodo max-age. Plačiau apie tai kalbama kurse „Saugiai internete“.
Mišrus turinys
Jei https puslapis įkelia paveikslėlį, scenarijų ar stilių failą per http://, jame yra mišrus turinys (mixed content). Naršyklės nesaugius scenarijus ir stilių failus blokuoja arba rodo įspėjimą. Perėjus prie https, tai dažnai pasitaiko su senais paveikslėliais tekstuose arba su tema, kurioje įrašyti fiksuoti adresai. Ieškokite pirminiame kode src="http:// ir href="http:// ir pakeiskite juos https arba santykiniu adresu.
Praktiškai: nukreipimo į https nustatymas
Su WebOké prieglobos planu nukreipimą į https DirectAdmin skydelyje įjungiate domeno nustatymuose (jungiklis „Įjungti automatinį peradresavimą į HTTPS“), o tame pačiame puslapyje ties „Priverstinis nukreipimas“ pasirenkate, ar naudosite adresą su www, ar be jo. Nukreipimą nustatykite vienoje vietoje: dvi taisyklės, kurių kiekviena daro ką nors kita (pavyzdžiui, skydelyje ir įskiepyje), lengvai sukuria ciklą. Svetainė, sukurta su AI Builder, publikuojant gauna sertifikatą ir savo adresą. WordPress skiltyje „Nustatymai“, „Bendras“ įrašykite WordPress adresą ir svetainės adresą su https:// ir pasirinktu pavadinimu; patį nukreipimą tvarkykite serveryje. Pas kitus paslaugų teikėjus ir svetainių kūrimo įrankiuose viskas veikia panašiai, tik mygtukai vadinasi kitaip.
Jei norite tai padaryti per .htaccess (Apache arba LiteSpeed), šios taisyklės visus variantus vienu žingsniu nukreipia į 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]Po to visada patikrinkite visus keturis variantus, taip pat su keliu gale (http://example.com/contact): kelias turi išlikti, o ne nušokti į pagrindinį puslapį.
Santrauka
- Pasirinkite vieną pageidaujamą adresą (https, su www arba be jo) ir kitus variantus nukreipkite į jį.
- Nuolatiniams nukreipimams naudokite 301 arba 308; 302 ir 307 yra laikini ir neduoda Google signalo apie kanoninį adresą.
- Kiekvienas variantas turi patekti į pageidaujamą adresą vienu žingsniu, daugiausia dviem; grandinės kainuoja laiko, o ciklai sugadina svetainę.
- Pasak Google, https yra lengvas reitingavimo signalas; lankytojams tai pirmiausia pasitikėjimo klausimas. Sertifikatas turi apimti abu pavadinimus.
- HSTS leidžia naršyklei pačiai jungtis per https; mišrų turinį sutvarkykite po perėjimo.
Testas (quiz)
Užduotis
Užduotis A4.1: Ar viskas vienu žingsniu nukreipiama į https? Įveskite savo domeno vardą (be www). Programa išbando visus keturis variantus (http ir https, su www ir be jo), žingsnis po žingsnio seka kiekvieną nukreipimą ir patikrina abiejų pavadinimų sertifikatą. Kiekvienam variantui matysite grandinę su būsenos kodais, ar visi jie patenka į tą patį https adresą ir ar yra HSTS antraštės eilutė. Neturite savo svetainės? Naudokite rijksoverheid.nl.
Skaitykite daugiau
Šiuose straipsniuose aprašyti žingsniai taikomi WebOké skydeliams; pas kitus paslaugų teikėjus viskas veikia panašiai.
- DirectAdmin vadovas 6.4: Lankytojus visada nukreipti į https
- DirectAdmin vadovas 4.3: Domeno nustatymai: SSL, PHP, www ir private_html
- DirectAdmin vadovas 6.3: Sertifikatas skirtas www, subdomenams ir wildcard
- Priverstinai nukreipti lankytojus į https
- Nemokamas DNS kursas 3.4: www, peradresavimas ir ką DNS nedaro
- 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
