Modul 3 · 3.2
www, omdirigering och blandat innehåll
Modul 3: Adress, https och användare · Lästid: 9 minuter
Lärandemål: Efter den här lektionen kan du välja en huvudadress, omdirigera alla varianter dit med en enda omdirigering och hitta och åtgärda blandat innehåll.
Nyckelbegrepp: kanonisk adress, 301 och 308, omdirigeringskedja, blandat innehåll (mixed content), sök och ersätt i databasen, serialiserade data
Fyra adresser, en webbplats
Din webbplats kan nås via fyra adresser:
http://example.com
http://www.example.com
https://example.com
https://www.example.comFör en besökare spelar det ingen roll, men för sökmotorer är det fyra olika adresser med samma innehåll. Även cookies (som din inloggningscookie) gäller per namn: den som loggar in på www är inte inloggad på domänen utan www. Därför väljer du en kanonisk adress (huvudadressen) och omdirigerar de andra tre dit.
Vilken du väljer är en smaksak (lektion 2.1). Det viktiga är att huvudadressen är densamma överallt: i DNS, i certifikatet, i Inställningar > Allmänt (lektion 3.1) och i omdirigeringarna.
Omdirigera med en 301, i ett steg
En omdirigering är ett svar från servern: "den här sidan finns någon annanstans". Webbläsaren går då automatiskt till den nya adressen. Koden anger vilken sorts omdirigering det är:
| Kod | Betydelse | Användning |
|---|---|---|
| 301 | Permanent flyttad | Standardvalet för http till https och för www till domänen utan www (eller tvärtom) |
| 308 | Permanent, och metoden (till exempel när ett formulär skickas) förblir densamma | Kan också användas för detta; webbläsare och sökmotorer behandlar den som en 301 |
| 302 eller 307 | Tillfällig | Endast för något som verkligen är tillfälligt, som en underhållssida |
En permanent omdirigering talar om för sökmotorer att den nya adressen är den riktiga. Vid en tillfällig kommer de fortsätta att minnas den gamla adressen.
Var också uppmärksam på kedjan. Säg att din huvudadress är https://example.com. Då vill 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 200Varje variant hamnar på huvudadressen i ett steg. Det som ofta händer:
http://www.example.com 301 https://www.example.com/
https://www.example.com 301 https://example.com/Det fungerar, men kostar ett extra steg (extra väntetid, särskilt i mobilen) och ett extra TLS-handslag. Värre är en loop: webbservern omdirigerar till https, WordPress omdirigerar tillbaka till http eftersom adresserna i inställningarna fortfarande står på http, och webbläsaren visar "för många omdirigeringar". Då motarbetar två inställningar varandra. Se till att bara en part omdirigerar till https (webbservern eller panelen) och att adresserna i WordPress redan står på huvudadressen.
WordPress omdirigerar också själv: om någon begär https://www.example.com/contact/ medan webbplatsens adress är https://example.com, omdirigerar WordPress till https://example.com/contact/. Det fungerar bara om begäran når WordPress, alltså om webbservern även låter namnet www leda till den här webbplatsen.
Blandat innehåll
Blandat innehåll (mixed content) är en https-sida som laddar delar via http://: en bild, en stilmall, ett skript, ett typsnitt eller en inbäddad video. Webbläsaren ser det som osäkert, eftersom de delarna kan ändras på vägen.
- Skript, stilmallar och iframes via http blockeras av webbläsare. Din webbplats ser då trasig ut eller så fungerar inte en funktion.
- Bilder, ljud och video via http försöker moderna webbläsare automatiskt hämta via https; lyckas det inte blockeras de. Hänglåset kan då visa en varning.
Var det kommer ifrån:
- Gamla länkar i ditt innehåll: en webbplats som tidigare låg på http har i tusentals inlägg
<img src="http://example.com/wp-content/uploads/...">. WordPress sparar de länkarna ordagrant i databasen. - Tema- eller tilläggsinställningar med en fullständig adress, till exempel en logotyp eller bakgrund med
http://. - Externa delar från en annan webbplats som bara kan nås via http. Dem måste du ersätta eller ta bort.
- Adresser i Inställningar > Allmänt som fortfarande står på http (lektion 3.1).
Så hittar du det
Öppna sidan, tryck på F12 och titta i fliken Console (Konsol). Webbläsaren rapporterar allt blandat innehåll med adressen till delen. Eller sök i sidans källkod (Ctrl+U) efter src="http:// och href="http://. Länkar till andra webbplatser i vanlig text (<a href="http://...">) ger inget blandat innehåll; det handlar om saker som sidan laddar.
Sök och ersätt, men på rätt sätt
Lösningen för gamla länkar i ditt innehåll är att ersätta alla http://example.com i databasen med https://example.com. Det är frestande att köra ett SQL-kommando som:
UPDATE wp_options SET option_value = REPLACE(option_value, 'http://example.com', 'https://example.com');Gör inte det. Många inställningar för teman, tillägg och widgetar sparas serialiserade. Det ser ut så här:
s:27:"http://example.com/logo.png";s:27 betyder: här följer en text på 27 tecken. Efter en enkel ersättning är texten 28 tecken (ett s tillkom), men det står fortfarande 27. PHP kan då inte längre läsa värdet och inställningen försvinner i tysthet: en tom meny, en försvunnen logotyp, widgetar som är borta.
Använd ett verktyg som uppdaterar längderna, och gör alltid en säkerhetskopia först (lektion 8.1): sök och ersätt har ingen papperskorg.
- WP-CLI: titta först, gör sedan. Gå i terminalen till mappen med din WordPress och kör först provkörningen (första raden), först därefter den riktiga (andra raden).
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=guidMed --dry-run ser du hur många ersättningar det skulle bli per tabell, utan att något ändras. --skip-columns=guid lämnar inläggens fasta identifierare (kolumnen guid) i fred; WordPress rekommenderar att de aldrig ändras. Utan extra alternativ arbetar WP-CLI bara med WordPress egna tabeller. Har ett tillägg egna tabeller med samma prefix, lägg då till --all-tables-with-prefix. Använd --all-tables bara om du vet varför: det påverkar alla tabeller i databasen, även de som hör till en annan webbplats eller applikation.
- Ett sök-och-ersätt-tillägg som hanterar serialiserade data (det finns flera i tilläggskatalogen på wordpress.org). Använd även där provläget först och ta bort tillägget efteråt.
Ersätt aldrig något som example.com utan http:// eller https:// framför: då påverkar du även e-postadresser och andra texter. Hela arbetsgången, även för dig som inte har tillgång till en terminal, finns i kunskapsbasartikeln om sök och ersätt i WordPress-databasen (se Läs mer).
I praktiken: så ser det ut i en panel
Som exempel använder vi DirectAdmin. Andra paneler har en liknande inställning för "alltid https".
- Aktivera Tvinga SSL med https-omdirigering i domäninställningarna (lektion 3.1).
- Välj för domänen om www ska gå till domänen utan www eller tvärtom (i DirectAdmin i domäninställningarna; annars med en omdirigering via Webbplatsomdirigeringar eller
.htaccess). - Kontrollera kedjan med uppgiften nedan eller med webbläsarens utvecklarverktyg (fliken Nätverk, kryssrutan "Bevara logg").
Sammanfattning
- Välj en kanonisk adress och låt de andra tre varianterna gå dit med en 301 (eller 308), i ett steg.
- Låt bara en part omdirigera till https; annars får du en loop.
- Blandat innehåll är en https-sida som laddar delar via http; webbläsarens konsol visar vilka.
- Gamla länkar i databasen ersätter du med
wp search-replaceeller ett tillägg som förstår serialiserade data, aldrig med en enkel SQL-REPLACE. - Gör alltid en säkerhetskopia först och kör först en provkörning (
--dry-run); lämna kolumnenguidi fred och håll dig till WordPress egna tabeller.
Quiz
Uppgift
Uppgift A3.2: En huvudadress och inget blandat innehåll. Ange din domän. Programmet öppnar de fyra varianterna (http och https, med och utan www) och följer omdirigeringarna. Rätt är: alla fyra hamnar på samma adress med https, med högst en omdirigering per variant och endast permanenta koder (301 eller 308). Sedan läser programmet startsidans HTML och letar efter skript, stilmallar, bilder, iframes och typsnitt som laddas via http://.
Läs mer
De här artiklarna beskriver stegen i WebOkés paneler; i andra paneler fungerar de på liknande sätt.
- DirectAdmin-guide 6.4: Besökare alltid till https
- DirectAdmin-guide 4.7: Webbplatsomdirigeringar: omdirigera en domän eller sida
- Sök och ersätt i WordPress-databasen
- Tvinga besökare att omdirigeras till https
- Gratis DNS-kurs 3.4: www, vidarebefordran och vad DNS inte gör
- Blandat innehåll (MDN, engelska): https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content
- wp search-replace (developer.wordpress.org, engelska): https://developer.wordpress.org/cli/commands/search-replace/
