Från HTTP till HTTPS på WordPress

person Jockefolder_openbloglocal_offer, , , , , access_time 11 juni, 2016

Min leverantör av hemsideutrymme har ju haft vänligheten att installera SSL-certifikat från Let's Encrypt. Inte för att jag har sånt jättebehov av det på den här servern, men det är ändock "kul" att slå på sakerna (finns vissa fördelar med det också, eftersom man då får "referer-information" i loggen från HTTPS-sajter). Men när jag gjorde det, så insåg jag ju att man får "mixed content" när man går från HTTP till HTTPS med WordPress, eftersom länkarna till bilder skapas med absoluta URLer (länken innehåller protokoll, servernamn och full sökväg – http://server.domain.com/image.jpg).

För att fixa till det så kan man använda pluginnen "Search & Replace". Det var en inte helt enkel operation, visade det sig. Anledningen till att jag fick problem var att jag har haft WordPress installerat sedan "urminnes tider" (well, 2006 iallafall) och på den tiden så var standardinställningen att man skulle använda Latin1 (typ ISO-8859-1) i databasen. Dessvärre så ser det ut som Search & Replace-pluginnen ändock sparar "backupen" i UTF-8 oavsett vad man använder för databaskoppling. Det gjorde att när jag sedan skulle läsa tillbaka backupen så var (nästan alla) svenska tecken felaktiga (verkar vara ett riktigt mishmash med hur wordpress kodar "internationella tecken". Ibland sparas det rått (UTF-8/ISO-8859-1), och ibland är det "entity kodat" (Å kodas som "å").

Fick svettas lite innan jag insåg att jag kunde läsa in backup-filen med hjälp av PHP My Admin istället för med pluginnens egen backup-återläsningsfunktion. Det jag fick göra, var att ange att backup-filen skulle läsas tillbaka med ISO-8859-1 codepage, och voilla så funkade allt som vanligt (???).

Mera underhåll

När jag sedan tittade på mina andra Worpress-bloggar så insåg jag att vissa av dem faktiskt använde UTF-8 databaser, medan några andra skrev ner UTF-8 tecken genom en ISO-8859-1 koppling till en Latin1-databas. När man skriver ner UTF-8 tecken i en ISO-8859-1-databas så visas t.ex. ÅÄÖ inte som dessa tecknen när man använder PHP My Admin, och sorteringen i SQL fungerar dåligt när det kommer svenska tecken t.ex. Så jag tog tag i saken och gjorde om detta…

Man kan sedan Worpress 2.2 ange i wp-config.php vilken databas-encoding man vill ha på databas-kopplingen.

Det jag gjorde var:

  1. Läs ut en backup-fil från WordPress
    Jag använde mig av Search & Replace-pluginnens funktion, eftersom jag visste att den sparade ner rådatat i UTF-8-format
  2. Ställ in så att WordPress använder UTF-8 i config.php
  3. Ändra alla "DEFULT CHARSET" -defintioner i backup-filen så att tabellerna skapas med UTF-8 charset och collationering
  4. Läs tillbaka den modifierade backup-filen med hjälp av Search & Replace-pluginnen.

Volla… Nu visas svenska tecken på rätt sätt både i WordPress och i PHP My Admin (när man browsar datat) – och jag kan använda Search & Replace pluginnen för att läsa tillbaka backupfilerna…

 

Kan vara några småproblem kvar…

Insåg efter att ha surfat runt på bloggen, att det verkar ha blivit något konverteringsknas iallafall, för det verkar som stora ÅÄ och Ö inte konverterades rätt. Det är ju inte omöjligt att jag lyckades förstöra det när jag läste tillbaka backupen någon gång(?) – eller också är rutinen inte helt 100%-igt bra.  Jag tror jag har rättat de flesta ställena, men jag fick göra det manuellt. Det finns säkert kvar något ställer där det blir två konstiga tecken istället för ÅÄ eller Ö också, men det får man väl fixa när man väl hittar det!

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Denna webbplats använder Akismet för att minska skräppost. Lär dig om hur din kommentarsdata bearbetas.