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, ar vienu pāradresāciju novirzīt uz to visus variantus, kā arī atrast 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ē, serializēti dati
Četras adreses, viena tīmekļa vietne
Jūsu tīmekļa vietne ir pieejama četrās adresēs:
http://example.com
http://www.example.com
https://example.com
https://www.example.comApmeklētājam tas nav svarīgi, bet meklētājprogrammām tās ir četras dažādas adreses ar vienādu saturu. Arī sīkdatnes (piemēram, Jūsu pieteikšanās sīkdatne) ir piesaistītas konkrētam nosaukumam: kas piesakās adresē www, nav pieteicies domēnā bez www. Tāpēc Jūs izvēlaties vienu kanonisko adresi (galveno adresi) un pārējās trīs pāradresējat uz to.
Kuru adresi izvēlēties, ir gaumes jautājums (nodarbība 2.1). Svarīgi, lai galvenā adrese visur būtu vienāda: DNS, 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ūks tad pats pāriet uz jauno adresi. Kods norāda, kāda veida pāradresācija tā ir:
| Kods | Nozīme | Izmantošana |
|---|---|---|
| 301 | Pārvietots pastāvīgi | Standarta izvēle pārejai no http uz https un no www uz domēnu bez www (vai otrādi) |
| 308 | Pastāvīgi, un metode (piemēram, veidlapas nosūtīšana) paliek nemainīga | Arī piemērots šim mērķim; pārlūki un meklētājprogrammas to apstrādā kā 301 |
| 302 vai 307 | Īslaicīgi | Tikai tam, kas patiešām ir īslaicīgs, piemēram, apkopes lapai |
Pastāvīga pāradresācija paziņo meklētājprogrammām, ka jaunā adrese ir īstā. Īslaicīgas 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 Jums vajag šādi:
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 galvenajā adresē 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 laiks, īpaši mobilajās ierīcēs) un papildu TLS rokasspiedienu. Vēl sliktāka ir cilpa: tīmekļa serveris pāradresē uz https, WordPress pāradresē atpakaļ uz http, jo adreses iestatījumos joprojām ir ar http, un pārlūks ziņo "pārāk daudz novirzīšanu". Tad divi iestatījumi darbojas viens pret otru. Parūpējieties, lai uz https pāradresētu tikai viena puse (tīmekļa serveris vai panelis) un lai adreses WordPress jau būtu iestatītas uz galveno adresi.
Arī WordPress pats veic pāradresāciju: ja kāds pieprasa https://www.example.com/contact/, bet vietnes adrese ir https://example.com, WordPress pāradresē uz https://example.com/contact/. Tas darbojas tikai tad, ja pieprasījums nonāk līdz WordPress, tātad, ja tīmekļa serveris arī nosaukumu www novirza uz šo tīmekļa vietni.
Jaukts saturs
Jaukts saturs (mixed content) ir https lapa, kas ielādē daļas caur http://: attēlu, stila lapu, skriptu, fontu vai iegultu video. Pārlūks to uzskata par nedrošu, jo šīs daļas pa ceļam var tikt mainītas.
- Skriptus, stila lapas un iframe caur http pārlūki bloķē. Jūsu tīmekļa vietne tad izskatās salauzta vai kāda funkcija nedarbojas.
- Attēlus, audio un video caur http mūsdienu pārlūki mēģina automātiski ielādēt caur https; ja tas neizdodas, tie tiek bloķēti. Slēdzenes ikona tad var rādīt brīdinājumu.
No kurienes tas rodas:
- Vecas saites Jūsu saturā: tīmekļa vietnei, kas agrāk darbojās ar http, tūkstošiem ziņu ir
<img src="http://example.com/wp-content/uploads/...">. WordPress šīs saites burtiski saglabā datubāzē. - Tēmas vai spraudņa iestatījumi ar pilnu adresi, piemēram, logotips vai fons ar
http://. - Ārējas daļas no citas tīmekļa vietnes, kas pieejamas tikai caur http. Tās ir jāaizstāj vai jānoņem.
- Adreses sadaļā Iestatījumi > Vispārīgi, kas joprojām ir ar http (nodarbība 3.1).
Kā to atrast
Atveriet lapu, nospiediet F12 un apskatiet cilni Console. Pārlūks ziņo par katru jaukta satura gadījumu, norādot attiecīgās daļas adresi. Vai arī meklējiet lapas pirmkodā (Ctrl+U) 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 tā. Daudzi tēmu, spraudņu un logrīku iestatījumi ir saglabāti serializētā veidā. Tas izskatās šādi:
s:27:"http://example.com/logo.png";s:27 nozīmē: šeit seko 27 rakstzīmes garš teksts. Pēc vienkāršas aizstāšanas teksts ir 28 rakstzīmes garš (klāt nāca s), bet joprojām ir norādīts 27. PHP tad vairs nevar nolasīt vērtību, un iestatījums klusi pazūd: tukša izvēlne, pazudis logotips, pazuduši logrīki.
Izmantojiet rīku, kas atjaunina šos garumus, un vienmēr vispirms izveidojiet rezerves kopiju (nodarbība 8.1): meklēšanai un aizstāšanai nav atkritnes.
- WP-CLI: vispirms pārbaudiet, tad rīkojieties. Terminālī pārejiet uz savas WordPress mapi un vispirms palaidiet izmēģinājuma režīmu (pirmā rinda), tikai pēc tam īsto aizstāšanu (otrā rinda).
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=guidAr --dry-run Jūs redzat, cik aizstāšanu būtu katrā tabulā, neko nemainot. --skip-columns=guid atstāj neskartus ziņu pastāvīgos identifikatorus (kolonna guid); WordPress iesaka tos nekad nemainīt. Bez papildu opcijas WP-CLI strādā tikai ar WordPress tabulām. Ja kādam spraudnim ir savas tabulas ar tādu pašu prefiksu, pievienojiet --all-tables-with-prefix. Izmantojiet --all-tables tikai tad, ja zināt, kāpēc: tas skar katru datubāzes tabulu, arī citas tīmekļa vietnes vai lietotnes tabulas.
- Meklēšanas un aizstāšanas spraudnis, kas atbalsta serializētus datus (wordpress.org spraudņu katalogā tādi ir vairāki). Arī tur vispirms izmantojiet izmēģinājuma režīmu un pēc tam spraudni atkal izdzēsiet.
Nekad neaizstājiet kaut ko līdzīgu example.com bez http:// vai https:// priekšā: tad Jūs skarsiet arī e-pasta adreses un citus tekstus. Visa darba kārtība, arī tiem, kam nav piekļuves terminālim, ir aprakstīta zināšanu bāzes rakstā par meklēšanu un aizstāšanu WordPress datubāzē (skatiet sadaļu Papildu lasāmviela).
Praksē: kā tas izskatās panelī
Kā piemēru izmantojam DirectAdmin. Citos paneļos ir līdzīgs slēdzis opcijai "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āpāradresē uz domēnu bez www vai otrādi (DirectAdmin to dara domēna iestatījumos; citādi ar pāradresāciju caur Site Redirects vai
.htaccess). - Pārbaudiet ķēdi ar tālāk norādīto uzdevumu vai ar sava pārlūka izstrādātāja rīkiem (cilne Tīkls, atzīmējiet "Saglabāt žurnālu").
Kopsavilkums
- Izvēlieties vienu kanonisko adresi un pāradresējiet uz to pārējos trīs variantus ar 301 (vai 308), vienā solī.
- Ļaujiet uz https pāradresēt tikai vienai pusei; pretējā gadījumā rodas cilpa.
- Jaukts saturs ir https lapa, kas ielādē daļas caur http; pārlūka konsole parāda, kuras.
- Vecas saites datubāzē aizstājiet ar
wp search-replacevai spraudni, kas saprot serializētus datus, nekad ar vienkāršu SQL REPLACE. - Vienmēr vispirms rezerves kopija un vispirms izmēģinājuma režīms (
--dry-run); atstājiet kolonnuguidneskartu un strādājiet tikai ar WordPress tabulām.
Tests (quiz)
Uzdevums
Uzdevums A3.2: Viena galvenā adrese un bez jaukta satura. Ievadiet savu domēnu. Programma atver četrus variantus (http un https, ar www un bez tā) un seko pāradresācijām. Pareizi ir, ja visi četri nonāk vienā un tajā pašā adresē ar https, katram variantam ir ne vairāk kā viena pāradresācija un tiek izmantoti tikai pastāvīgie kodi (301 vai 308). Pēc tam programma nolasa sākumlapas HTML un meklē skriptus, stila lapas, attēlus, iframe un fontus, kas tiek ielādēti caur http://.
Papildu lasāmviela
Šajos rakstos aprakstīti soļi 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 pāradresēšana
- Meklēšana un aizstāšana WordPress datubāzē
- Piespiedu kārtā 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/
