Zum Inhalt springen

Umstellung WordPress auf https (quick&dirty)

  • von

In der folgenden Notiz sind alle mit $ beginnenden Zeichenfolgen Variablen und sollte vor Benutzung angepasst werden.

Das Blog ist in den letzten Jahren mehrfach umgezogen, und so entstanden einige Altlasten (Links welche noch über die alte Domain laufen, links ohne https) welche ich nun beseitigen wollte.

Als erstes exportiere ich die Datenbank und erstelle eine Sicherheitskopie des Exports.
Im zweiten Schritt entferne ich alle Vorkommen der alten Domain.
Im dritte Schritt ersetze ich alle http://blog.bloy.at durch https://blog.bloy.at
Im vierten Schritt lösche die die mysql-Datenbank und spiele abschließend die geänderte Datenbank ein.

Sinnvoll geht das meiner Auffassung nach mittels bash und mysql.

1.Export („Entladen der Datenbank“)

Zuerst also ein Export der Datenbank und eine Kopie.

mysqldump -u $Benutzer -p $Datenbankname > arbeit.sql
cp arbeit.sql backup.12.01.2016-Dezember.sql

2.Entfernen der alten Domain

Hier werden nun alle Vorkommen der alten Domain ersetzt.

sed s/www.patrickbloy.de/blog.bloy.at/g arbeit.sql

Anm.: Das sind Altlasten aus dem letzten Umzug. )

3.Ersetzen http durch https

sed s/http/https/g arbeit.sql

ACHTUNG: Das ist keine saubere Lösung, es werden damit auch alle Links auf externe Quellen in den Beiträgen geändert. Das ist auf meiner Seite jedoch kein Problem, ggf. empfehle ich eine Nachbearbeitung mit einem Linkchecker.

3.1Alternative

a) Editor

Die Suchen Ersetzen Operationen lassen sich auch mit vi(m), nano et cetera durchführen.
So erspart man sich Spaß mit Zeichenmaskierungen, wenn man z.B. http://blog.bloy.at verwendet.

b)mysql

Natürlich ist es auch möglich die Ersetzung direkt in mysql vorzunehmen. Es empfiehlt sich dann die DB vorher einmal zu exportieren („entladen“), bevor man Änderungen vornimmt.

4.Originaldatenbank in mysql löschen, neuanlegen und neue Datensätze importieren

mysqladmin -u $Benutzername -p drop $Datenbankname

löscht die Datenbank, der folgende Befehl legt sie neu an:

mysql -u $Benutzername -p -e "create database $Datenbankname"

neue Datenbank einspielen (laden)

mysql -u $Benutzer -p $Datenbankname < arbeit.sql

Es geht auch ohne löschen und Neuanlegen, ich wollte jedoch schnell vorankommen und sicherstellen, dass es keine Konflikte beim Zurückspielen gibt. Die obige Lösung stellt dies radikal sicher.

Das Ergebnis spricht für sich:

https ohne unsichere Elemente
https ohne unsichere Elemente

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert