Modul 3 · 3.2
www, videresending og blandet innhold
Modul 3: Adresse, https og brukere · Lesetid: 9 minutter
Læringsmål: Etter denne leksjonen kan du velge én hovedadresse, sende alle varianter dit med én videresending og oppdage og løse blandet innhold.
Nøkkelbegreper: kanonisk adresse, 301 og 308, videresendingskjede, blandet innhold (mixed content), søk og erstatt i databasen, serialiserte data
Fire adresser, ett nettsted
Nettstedet ditt er tilgjengelig via fire adresser:
http://example.com
http://www.example.com
https://example.com
https://www.example.comFor en besøkende spiller det ingen rolle, men for søkemotorer er dette fire forskjellige adresser med samme innhold. Også informasjonskapsler (som innloggingskapselen din) gjelder per navn: den som logger inn på www, er ikke innlogget på den kale varianten. Derfor velger du én kanonisk adresse (hovedadressen) og sender de tre andre dit med en videresending.
Hvilken du velger, er en smakssak (leksjon 2.1). Det viktige er at hovedadressen er den samme overalt: i DNS, i sertifikatet, i Innstillinger > Generelt (leksjon 3.1) og i videresendingene.
Videresending med en 301, i ett steg
En videresending er et svar fra serveren: «denne siden ligger et annet sted». Nettleseren går da automatisk til den nye adressen. Koden forteller hva slags videresending det er:
| Kode | Betydning | Bruk |
|---|---|---|
| 301 | Permanent flyttet | Standardvalget for http til https og for www til kal variant (eller omvendt) |
| 308 | Permanent, og metoden (for eksempel en skjemainnsending) forblir uendret | Kan også brukes til dette formålet; nettlesere og søkemotorer behandler den som 301 |
| 302 eller 307 | Midlertidig | Kun for noe som faktisk er midlertidig, som en vedlikeholdsside |
En permanent videresending forteller søkemotorer at den nye adressen er den egentlige. Ved en midlertidig videresending husker de fortsatt den gamle adressen.
Vær også oppmerksom på kjeden. Si at hovedadressen din er https://example.com. Da vil du ha:
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 200Hver variant kommer i ett steg til hovedadressen. Det som ofte skjer:
http://www.example.com 301 https://www.example.com/
https://www.example.com 301 https://example.com/Det fungerer, men koster et ekstra steg (ekstra ventetid, spesielt på mobil) og et ekstra TLS-håndtrykk. Verre er en runde: webserveren sender til https, WordPress sender tilbake til http fordi adressene i innstillingene fortsatt står på http, og nettleseren melder «for mange omdirigeringer». Da sender to innstillinger mot hverandre. Sørg for at det bare er én part som sender til https (webserveren eller kontrollpanelet), og at adressene i WordPress allerede står på hovedadressen.
WordPress sender også selv videre: spør noen etter https://www.example.com/contact/ mens nettstedsadressen er https://example.com, sender WordPress videre til https://example.com/contact/. Dette fungerer bare hvis forespørselen når WordPress, altså hvis webserveren lar navnet www også peke til dette nettstedet.
Blandet innhold
Blandet innhold (mixed content) er en https-side som laster deler via http://: et bilde, et stilark, et skript, en skrifttype eller en innebygd video. Nettleseren anser dette som usikkert, fordi disse delene kan endres underveis.
- Skript, stilark og iframes via http blokkeres av nettlesere. Nettstedet ditt kan da se ødelagt ut, eller en funksjon fungerer ikke.
- Bilder, lyd og video via http forsøker moderne nettlesere automatisk å hente via https; hvis det ikke lykkes, blokkeres de. Hengelåsen kan da vise en advarsel.
Hvor det kommer fra:
- Gamle lenker i innholdet ditt: et nettsted som tidligere lå på http, har i tusenvis av innlegg
<img src="http://example.com/wp-content/uploads/...">. WordPress lagrer disse lenkene bokstavelig i databasen. - Tema- eller utvidelsesinnstillinger med en fullstendig adresse, for eksempel en logo eller bakgrunn med
http://. - Eksterne elementer fra et annet nettsted som kun er tilgjengelig via http. Disse må du erstatte eller fjerne.
- Adresser i Innstillinger > Generelt som fortsatt står på http (leksjon 3.1).
Slik finner du det
Åpne siden, trykk F12 og se på fanen Konsoll. Nettleseren melder all blandet innhold med adressen til elementet. Eller søk i kildekoden til siden (Ctrl+U) etter src="http:// og href="http://. Lenker til andre nettsteder i vanlig tekst (<a href="http://...">) gir ikke blandet innhold; det handler om ting siden laster.
Søk og erstatt, men riktig gjort
Løsningen for gamle lenker i innholdet ditt er å erstatte all http://example.com i databasen med https://example.com. Fristelsen er en SQL-kommando som:
UPDATE wp_options SET option_value = REPLACE(option_value, 'http://example.com', 'https://example.com');Ikke gjør det. Mange innstillinger for temaer, utvidelser og widgeter er lagret serialisert. Det ser slik ut:
s:27:"http://example.com/logo.png";s:27 betyr: her følger en tekst på 27 tegn. Etter en enkel erstatning er teksten 28 tegn (det kom til en s), men det står fortsatt 27. PHP kan da ikke lenger lese verdien, og innstillingen forsvinner stille: en tom meny, en borte logo, widgeter som er borte.
Bruk et verktøy som oppdaterer disse lengdene:
- WP-CLI: først se, så gjøre.
wp search-replace 'http://example.com' 'https://example.com' --all-tables --dry-run
wp search-replace 'http://example.com' 'https://example.com' --all-tablesMed --dry-run ser du hvor mange erstatninger det ville vært per tabell, uten at noe endres.
- En søk-og-erstatt-utvidelse som støtter serialiserte data (det finnes flere i utvidelsesmappen på wordpress.org). Fjern utvidelsen etterpå.
Ta alltid en sikkerhetskopi først (leksjon 8.1). Erstatt heller aldri noe som example.com uten http:// foran: da rammer du også e-postadresser og annen tekst.
I praksis: slik ser det ut i et kontrollpanel
Som eksempel bruker vi DirectAdmin. Andre kontrollpaneler har en lignende bryter for «alltid https».
- Slå på Force SSL with https redirect i domeneinnstillingene (leksjon 3.1).
- Velg for domenet om www skal gå til kal variant eller omvendt (i DirectAdmin i domeneinnstillingene; ellers med en videresending via Site Redirects eller
.htaccess). - Kontroller kjeden med kommandoen under eller med utviklerverktøyene i nettleseren din (fanen Nettverk, avkrysset «Behold logg»).
Oppsummering
- Velg én kanonisk adresse og la de tre andre variantene gå dit med en 301 (eller 308), i ett steg.
- La bare én part sende til https; ellers får du en runde.
- Blandet innhold er en https-side som laster deler via http; nettleserkonsollen viser hvilke.
- Gamle lenker i databasen erstatter du med
wp search-replaceeller en utvidelse som forstår serialiserte data, aldri med en enkel SQL-REPLACE. - Alltid ta en sikkerhetskopi først, og kjør en prøverunde først.
Quiz
Oppgave
Oppgave A3.2: Én hovedadresse og ikke noe blandet innhold. Fyll inn domenet ditt. Programmet åpner de fire variantene (http og https, med og uten www) og følger videresendingene. Bra er: alle fire ender på samme adresse med https, med høyst én videresending per variant og kun permanente koder (301 eller 308). Deretter leser programmet HTML-en til forsiden og ser etter skript, stilark, bilder, iframes og skrifttyper som lastes via http://.
Les mer
Disse artiklene beskriver trinnene i kontrollpanelene til WebOké; i andre kontrollpaneler fungerer de på lignende måte.
- DirectAdmin-veiledning 6.4: Besøkende alltid sende til https
- DirectAdmin-veiledning 4.7: Site Redirects: videresend et domene eller en side
- Tving besøkende til å bruke https
- Gratis DNS-kurs 3.4: www, videresending og hva DNS ikke gjør
- Blandet innhold (MDN, engelsk): https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content
- wp search-replace (developer.wordpress.org, engelsk): https://developer.wordpress.org/cli/commands/search-replace/
