Modulul 3 · 3.2
www, redirecționare și conținut mixt
Modulul 3: Adresă, https și utilizatori · Timp de citire: 9 minute
Obiectiv de învățare: După această lecție veți putea alege o adresă principală, redirecționa toate variantele către aceasta printr-o singură redirecționare și depista și rezolva conținutul mixt.
Concepte-cheie: adresă canonică, 301 și 308, lanț de redirecționări, conținut mixt (mixed content), căutare și înlocuire în baza de date, date serializate
Patru adrese, o singură site
Site-ul dumneavoastră poate fi accesat prin patru adrese:
http://example.com
http://www.example.com
https://example.com
https://www.example.comPentru un vizitator nu contează, dar pentru motoarele de căutare acestea sunt patru adrese diferite cu același conținut. De asemenea, cookie-urile (precum cookie-ul dumneavoastră de autentificare) sunt valabile pe nume: cine se autentifică pe www nu este autentificat pe numele fără www. De aceea alegeți o singură adresă canonică (adresa principală) și redirecționați celelalte trei către aceasta.
Pe care o alegeți este o chestiune de gust (lecția 2.1). Important este ca adresa principală să fie aceeași peste tot: în DNS, în certificat, în Setări > Generale (lecția 3.1) și în redirecționări.
Redirecționare cu 301, într-un singur pas
O redirecționare este un răspuns al serverului: „această pagină se află în altă parte”. Browserul merge atunci automat la noua adresă. Codul indică tipul de redirecționare:
| Cod | Semnificație | Utilizare |
|---|---|---|
| 301 | Mutat permanent | Alegerea standard pentru http către https și pentru www către numele fără www (sau invers) |
| 308 | Permanent, iar metoda (de exemplu o trimitere de formular) rămâne aceeași | Poate fi folosit și pentru acest scop; browserele și motoarele de căutare îl tratează ca 301 |
| 302 sau 307 | Temporar | Doar pentru ceva cu adevărat temporar, precum o pagină de mentenanță |
O redirecționare permanentă comunică motoarelor de căutare că noua adresă este cea reală. La una temporară, acestea continuă să rețină adresa veche.
Acordați atenție și lanțului. Să presupunem că adresa dumneavoastră principală este https://example.com. Atunci doriți:
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 200Fiecare variantă ajunge la adresa principală într-un singur pas. Ce se întâmplă adesea:
http://www.example.com 301 https://www.example.com/
https://www.example.com 301 https://example.com/Acest lucru funcționează, dar costă un pas suplimentar (timp de așteptare suplimentar, mai ales pe mobil) și o strângere de mână TLS suplimentară. Mai grav este un cerc vicios: serverul web redirecționează către https, WordPress redirecționează înapoi către http deoarece adresele din setări sunt încă pe http, iar browserul anunță „prea multe redirecționări”. În acest caz, două setări se opun reciproc. Asigurați-vă că există o singură parte care redirecționează către https (serverul web sau panoul de control) și că adresele din WordPress sunt deja setate pe adresa principală.
WordPress redirecționează și el: dacă cineva solicită https://www.example.com/contact/ în timp ce adresa site-ului este https://example.com, WordPress redirecționează către https://example.com/contact/. Acest lucru funcționează doar dacă cererea ajunge la WordPress, deci dacă serverul web direcționează și numele www către acest site.
Conținut mixt
Conținutul mixt (mixed content) este o pagină https care încarcă componente prin http://: o imagine, o foaie de stiluri, un script, un font sau un videoclip încorporat. Browserul consideră acest lucru nesigur, deoarece aceste componente pot fi modificate pe parcurs.
- Scripturile, foile de stiluri și iframe-urile prin http sunt blocate de browsere. Site-ul dumneavoastră poate arăta defect sau o funcție nu mai merge.
- Imaginile, conținutul audio și video prin http sunt preluate automat prin https de browserele moderne; dacă acest lucru nu reușește, sunt blocate. Lacătul poate afișa atunci un avertisment.
De unde provine:
- Linkuri vechi în conținutul dumneavoastră: un site care funcționa cândva pe http are în mii de articole
<img src="http://example.com/wp-content/uploads/...">. WordPress salvează aceste linkuri literal în baza de date. - Setări de temă sau de module (pluginuri) cu o adresă completă, de exemplu un logo sau un fundal cu
http://. - Componente externe de pe un alt site care sunt accesibile doar prin http. Acestea trebuie înlocuite sau eliminate.
- Adresele din Setări > Generale care sunt încă pe http (lecția 3.1).
Cum găsiți acest lucru
Deschideți pagina, apăsați F12 și urmăriți fila Console. Browserul semnalează fiecare conținut mixt cu adresa componentei respective. Sau căutați în codul sursă al paginii (Ctrl+U) după src="http:// și href="http://. Linkurile către alte site-uri în text obișnuit (<a href="http://...">) nu reprezintă conținut mixt; este vorba despre lucruri pe care pagina le încarcă.
Căutare și înlocuire, dar corect
Soluția pentru linkurile vechi din conținutul dumneavoastră este înlocuirea tuturor adreselor http://example.com din baza de date cu https://example.com. Tentația este o comandă SQL de genul:
UPDATE wp_options SET option_value = REPLACE(option_value, 'http://example.com', 'https://example.com');Nu faceți acest lucru. Multe setări ale temelor, modulelor (pluginurilor) și widgeturilor sunt salvate în format serializat. Acesta arată astfel:
s:27:"http://example.com/logo.png";s:27 înseamnă: urmează un text de 27 de caractere. După o înlocuire simplă, textul are 28 de caractere (s-a adăugat un s), dar numărul rămas este tot 27. PHP nu mai poate citi valoarea, iar setarea dispare tăcut: un meniu gol, un logo dispărut, widgeturi care au dispărut.
Folosiți un instrument care actualizează aceste lungimi:
- WP-CLI: mai întâi verificați, apoi executați.
wp search-replace 'http://example.com' 'https://example.com' --all-tables --dry-run
wp search-replace 'http://example.com' 'https://example.com' --all-tablesCu --dry-run vedeți câte înlocuiri ar urma să aibă loc pe fiecare tabel, fără a modifica nimic.
- Un modul (plugin) de căutare și înlocuire care susține date serializate (există mai multe în folderul de module de pe wordpress.org). Eliminați modulul (pluginul) după aceea.
Faceți întotdeauna mai întâi o copie de siguranță (lecția 8.1). De asemenea, nu înlocuiți niciodată ceva precum example.com fără http:// în față: în acest caz afectați și adresele de e-mail și alte texte.
În practică: cum arată într-un panou de control
Ca exemplu folosim DirectAdmin. Alte panouri de control au un comutator similar pentru „întotdeauna https”.
- Activați la setările domeniului Force SSL with https redirect (lecția 3.1).
- Alegeți la domeniu dacă www trebuie să ajungă la numele fără www sau invers (la DirectAdmin în setările domeniului; altfel printr-o redirecționare via Site Redirects sau
.htaccess). - Verificați lanțul cu comanda de mai jos sau cu instrumentele de dezvoltare ale browserului (fila Rețea, bifa „Păstrare jurnal”).
Rezumat
- Alegeți o singură adresă canonică și redirecționați celelalte trei variante către aceasta cu un 301 (sau 308), într-un singur pas.
- Lăsați o singură parte să redirecționeze către https; altfel apare un cerc vicios.
- Conținutul mixt este o pagină https care încarcă componente prin http; consola browserului arată care anume.
- Linkurile vechi din baza de date le înlocuiți cu
wp search-replacesau cu un modul (plugin) care înțelege datele serializate, niciodată cu un REPLACE SQL simplu. - Întotdeauna mai întâi o copie de siguranță și mai întâi o rundă de probă.
Test (quiz)
Exercițiu
Exercițiu A3.2: O singură adresă principală și fără conținut mixt. Introduceți domeniul dumneavoastră. Programul deschide cele patru variante (http și https, cu și fără www) și urmărește redirecționările. Bine este dacă toate patru ajung la aceeași adresă cu https, cu cel mult o redirecționare pentru fiecare variantă și doar coduri permanente (301 sau 308). După aceea, programul citește codul HTML al paginii principale și caută scripturi, foi de stiluri, imagini, iframe-uri și fonturi care sunt încărcate prin http://.
Lecturi suplimentare
Aceste articole descriu pașii în panourile de control ale WebOké; în alte panouri de control funcționează similar.
- Manual DirectAdmin 6.4: Vizitatorii întotdeauna direcționați către https
- Manual DirectAdmin 4.7: Site Redirects: un domeniu sau o pagină de redirecționat
- Redirecționați obligatoriu vizitatorii către https
- Curs gratuit de DNS 3.4: www, redirecționare și ce nu face DNS
- Conținut mixt (MDN, în engleză): https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content
- wp search-replace (developer.wordpress.org, în engleză): https://developer.wordpress.org/cli/commands/search-replace/
