3. modulis · 3.2
www, pāradresācija un jaukts saturs
3. modulis: Adrese, https un lietotāji · Lasīšanas laiks: 9 minūtes
Mācību mērķis: Pēc šīs nodarbības Jūs varēsiet izvēlēties vienu galveno adresi, novirzīt visus variantus ar vienu pāradresāciju uz to un atklāt un novērst jauktu saturu.
Galvenie jēdzieni: kanoniskā adrese, 301 un 308, pāradresāciju ķēde, jaukts saturs (mixed content), meklēšana un aizstāšana datubāzē, seriālizēti dati
Četras adreses, viena tīmekļa vietne
Jūsu tīmekļa vietne ir sasniedzama ar četrām adresēm:
http://example.com
http://www.example.com
https://example.com
https://www.example.comApmeklētājam tas nav svarīgi, taču meklētājprogrammām tās ir četras dažādas adreses ar vienu un to pašu saturu. Arī sīkdatnes (piemēram, Jūsu pieteikšanās sīkdatne) darbojas atbilstoši nosaukumam: kas piesakās ar www, nav pieteicies bez tā. Tāpēc izvēlieties vienu kanonisko adresi (galveno adresi) un novirziet pārējās trīs uz to.
Kuru izvēlēties, ir gaumes jautājums (nodarbība 2.1). Svarīgi, lai galvenā adrese būtu vienāda visur: DNS ierakstos, sertifikātā, sadaļā Iestatījumi > Vispārīgi (nodarbība 3.1) un pāradresācijās.
Pāradresācija ar 301, vienā solī
Pāradresācija ir servera atbilde: "šī lapa atrodas citur". Pārlūkprogramma tad automātiski dodas uz jauno adresi. Kods pasaka, kāda veida pāradresācija tā ir:
| Kods | Nozīme | Lietojums |
|---|---|---|
| 301 | Pastāvīgi pārcelts | Pastāvīgā izvēle pāradresācijai no http uz https un no www uz domēnu bez www (vai otrādi) |
| 308 | Pastāvīgs, un metode (piemēram, veidlapas nosūtīšana) paliek nemainīga | Var izmantot arī šim nolūkam; pārlūkprogrammas un meklētājprogrammas to uztver tāpat kā 301 |
| 302 vai 307 | Pagaidu | Tikai kaut kam patiešām pagaidu, piemēram, apkopes lapai |
Pastāvīga pāradresācija pasaka meklētājprogrammām, ka jaunā adrese ir īstā. Pagaidu pāradresācijas gadījumā tās turpina atcerēties veco adresi.
Pievērsiet uzmanību arī ķēdei. Pieņemsim, ka Jūsu galvenā adrese ir https://example.com. Tad vēlaties, lai:
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 200Katrs variants nonāk pie galvenās adreses vienā solī. Bieži notiek šādi:
http://www.example.com 301 https://www.example.com/
https://www.example.com 301 https://example.com/Tas gan darbojas, taču prasa papildu soli (papildu gaidīšanas laiku, īpaši mobilajās ierīcēs) un papildu TLS rokasspiedienu. Vēl sliktāk ir aplis: tīmekļa serveris novirza uz https, WordPress novirza atpakaļ uz http, jo adreses iestatījumos joprojām ir http, un pārlūkprogramma ziņo "pārāk daudz pāradresāciju". Tad divi iestatījumi darbojas pretēji viens otram. Nodrošiniet, lai tikai viena puse veiktu pāradresāciju uz https (tīmekļa serveris vai panelis) un lai adreses WordPress jau būtu uzstādītas uz galveno adresi.
WordPress arī pats veic pāradresāciju: ja kāds pieprasa https://www.example.com/contact/, bet tīmekļa vietnes adrese ir https://example.com, tad WordPress novirza uz https://example.com/contact/. Tas darbojas tikai tad, ja pieprasījums nonāk pie WordPress, tātad ja tīmekļa serveris arī www nosaukumu novirza uz šo pašu tīmekļa vietni.
Jaukts saturs
Jaukts saturs (mixed content) ir https lapa, kas ielādē elementus caur http://: attēlu, stilu lapu, skriptu, fontu vai iegultu video. Pārlūkprogramma to uzskata par nedrošu, jo šie elementi ceļā var tikt mainīti.
- Skriptus, stilu lapas un iframes, kas tiek ielādēti caur http, pārlūkprogrammas bloķē. Jūsu tīmekļa vietne tad var izskatīties salauzta vai kāda funkcija nedarbojas.
- Attēlus, audio un video, kas tiek ielādēti caur http, mūsdienu pārlūkprogrammas automātiski mēģina ielādēt caur https; ja tas neizdodas, tie tiek bloķēti. Slēdzenes ikona tad var parādīt brīdinājumu.
No kurienes tas rodas:
- Vecas saites Jūsu saturā: tīmekļa vietnei, kas agrāk darbojās uz http, tūkstošiem ziņu ir
<img src="http://example.com/wp-content/uploads/...">. WordPress saglabā šīs saites burtiski datubāzē. - Tēmas vai spraudņa iestatījumi ar pilnu adresi, piemēram, logotips vai fons ar
http://. - Ārēji elementi no citas tīmekļa vietnes, kas sasniedzami tikai caur http. Tie Jums jāaizstāj vai jāizņem.
- Adreses sadaļā Iestatījumi > Vispārīgi, kas joprojām ir http (nodarbība 3.1).
Kā to atrast
Atveriet lapu, nospiediet F12 un apskatiet cilni Console. Pārlūkprogramma paziņo par katru jaukto saturu kopā ar elementa adresi. Vai arī meklējiet lapas pirmkodā (Ctrl+U) pēc src="http:// un href="http://. Parastas saites uz citām tīmekļa vietnēm tekstā (<a href="http://...">) nerada jauktu saturu; runa ir par to, ko lapa ielādē.
Meklēšana un aizstāšana, bet pareizi
Risinājums vecajām saitēm Jūsu saturā ir aizstāt visus http://example.com datubāzē ar https://example.com. Kārdinājums ir izmantot SQL komandu, piemēram:
UPDATE wp_options SET option_value = REPLACE(option_value, 'http://example.com', 'https://example.com');Nedariet to. Daudzi tēmu, spraudņu un vidžetu iestatījumi ir saglabāti seriālizētā veidā. Tas izskatās šādi:
s:27:"http://example.com/logo.png";s:27 nozīmē: šeit seko teksts, kas sastāv no 27 rakstzīmēm. Pēc vienkāršas aizstāšanas teksts ir 28 rakstzīmes garš (pievienojās s), bet skaitlis joprojām rāda 27. PHP tad vairs nevar nolasīt vērtību, un iestatījums klusi pazūd: tukša izvēlne, pazudis logotips, vidžeti, kas ir pazuduši.
Izmantojiet rīku, kas atjaunina šos garumus:
- WP-CLI: vispirms apskatīties, tad darīt.
wp search-replace 'http://example.com' 'https://example.com' --all-tables --dry-run
wp search-replace 'http://example.com' 'https://example.com' --all-tablesAr --dry-run Jūs redzat, cik aizstāšanu katrā tabulā notiktu, neko faktiski nemainot.
- Meklēšanas un aizstāšanas spraudnis, kas atbalsta seriālizētus datus (to ir vairāki wordpress.org spraudņu mapē). Pēc tam spraudni atkal noņemiet.
Vienmēr vispirms izveidojiet rezerves kopiju (nodarbība 8.1). Nekad neaizstājiet arī kaut ko tādu kā example.com bez http:// priekšā: tad Jūs skarsiet arī e-pasta adreses un citus tekstus.
Praksē: kā tas izskatās panelī
Kā piemēru izmantosim DirectAdmin. Citos paneļos ir līdzīgs pārslēgs "vienmēr https".
- Domēna iestatījumos ieslēdziet Force SSL with https redirect (nodarbība 3.1).
- Pie domēna izvēlieties, vai www jānovirza uz domēnu bez www vai otrādi (DirectAdmin domēna iestatījumos; citādi ar pāradresāciju, izmantojot Site Redirects vai
.htaccess). - Pārbaudiet ķēdi ar komandu zemāk vai ar Jūsu pārlūkprogrammas izstrādātāja rīkiem (cilne Tīkls, atzīme "Saglabāt žurnālu").
Kopsavilkums
- Izvēlieties vienu kanonisko adresi un novirziet pārējos trīs variantus uz to ar 301 (vai 308), vienā solī.
- Ļaujiet novirzīt uz https tikai vienai pusei; pretējā gadījumā rodas aplis.
- Jaukts saturs ir https lapa, kas ielādē elementus caur http; pārlūkprogrammas konsole parāda, kurus.
- Vecās saites datubāzē aizstājiet ar
wp search-replacevai spraudni, kas saprot seriālizētus datus, nekad ar vienkāršu SQL REPLACE. - Vienmēr vispirms rezerves kopija un izmēģinājuma solis.
Tests
Uzdevums
Uzdevums A3.2: Viena galvenā adrese un bez jaukta satura. Ievadiet savu domēnu. Programma atver četrus variantus (http un https, ar un bez www) un seko pāradresācijām. Labi ir, ja visi četri nonāk pie vienas un tās pašas adreses ar https, ar ne vairāk kā vienu pāradresāciju katram variantam un tikai ar pastāvīgiem kodiem (301 vai 308). Pēc tam programma nolasa sākumlapas HTML un meklē skriptus, stilu lapas, attēlus, iframes un fontus, kas tiek ielādēti caur http://.
Papildu lasāmviela
Šie raksti apraksta soļus WebOké paneļos; citos paneļos tie darbojas līdzīgi.
- DirectAdmin rokasgrāmata 6.4: Apmeklētājus vienmēr novirzīt uz https
- DirectAdmin rokasgrāmata 4.7: Site Redirects: domēna vai lapas novirzīšana
- Obligāti novirzīt apmeklētājus uz https
- Bezmaksas DNS kurss 3.4: www, pāradresācija un tas, ko DNS nedara
- Jaukts saturs (MDN, angļu valodā): https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content
- wp search-replace (developer.wordpress.org, angļu valodā): https://developer.wordpress.org/cli/commands/search-replace/
