Ich wurde beauftragt, ungefähr 100 Sites in meiner Multisite-Instanz in HTTPS zu konvertieren.
Ich kann leicht ein Skript schreiben , um die Datenbank zu erreichen siteurl
und die home
Werte und in HTTPS zu ändern. Welcher Inturn sollte die Site dazu zwingen, Skripte und zukünftige eingebettete Bilder in HTTPS einzufügen, oder?
Nun, ich muss auch alle post_content für interne Links sowie Bilder mit HTTP durchgehen und diese in HTTPS konvertieren.
Ich könnte wahrscheinlich etwas zusammenpeitschen, um das zu tun, aber ich frage mich, was ich sonst noch ändern muss. GUIDs richtig? Wenn ich die Befehle $ wpdb verwenden würde, müsste ich die Datenbank anschließend neu initialisieren?
Ich hätte zuerst fragen sollen, gibt es ein zuverlässiges Plugin, das das für mich erledigt? Was muss ich noch über diesen Prozess wissen?
Hinweise - Wir haben bereits alle SSL-Zertifikate, sodass ich mir darüber keine Sorgen machen muss. - Auf dem Server wird Linux (Redhat) und Apache ausgeführt. - Auf der Multisite werden Unterverzeichnisse verwendet. - Ich weiß nicht viel anderes, aber der Server befindet sich außerhalb meiner Zuständigkeit
http
auf ändern ,https
wenn Sie die Zeichenfolgenlänge nicht ändern.Antworten:
Sie können ein Skript ausführen, um alle URLs und Anleitungen auf https zu aktualisieren, wenn Sie ein sauberes Setup wünschen.
Berücksichtigen Sie aber auch Alternativen wie:
In wp-config.php für das Backend:
In wp-config.php für das Frontend (oder führen Sie ein Datenbank-UPDATE-Skript aus):
Dann können Sie einfach ein Skript ausführen, um alle Inhalts-URLs von wp_posts zu aktualisieren.
quelle
Bei diesem Vorgang wird tatsächlich ein Sicherheitszertifikat gekauft und auf Ihren Server für Ihre Websites angewendet. Dies wiederum zwingt jeden Besucher über das von Ihrem Server vorgelegte Zertifikat zu einer sicheren Verbindung. Diese Zertifikate werden als SSL-Zertifikate bezeichnet: http://www.DigiCert.com/SSL-Certificates
quelle
Eine Möglichkeit, diese Datenänderung durchzuführen, ist die Verwendung von WP-CLI auf dem Terminal.
Zunächst sollten Sie sicherstellen, dass Sie über eine Sicherungs- und eine solide Wiederherstellungsstrategie verfügen, falls etwas schief geht. Sie sollten dieses Verfahren auch auf einem lokalen oder Testsystem mit einer Kopie der Live-Datenbank testen.
Die grundlegenden Schritte bestehen darin, über jeden Standort Ihres Netzwerks zu iterieren und die URLs jedes Standorts mit dem
search-replace
Befehl von WP-CLI zu ersetzen .Hier ist ein Bash-Einzeiler:
Lassen Sie uns das untersuchen:
Dieser startet eine Schleife für jede Zeile der Ausgabe des Befehls
$()
und schreibt jede Zeile in die Variable$SITE
.Dies ist der WP-CLI-
site list
Befehl , mit dem Sie eine Liste aller Site-URLs in Ihrem Netzwerk erhalten. Führen Sie nur diesen Befehl aus. Sie werden wahrscheinlich Folgendes sehen:Jetzt
startet nur den inneren Schleifenteil.
Der Befehl für die innere Schleife macht die ganze Magie (ich habe ihn zur
\
besseren Lesbarkeit in zwei Zeilen aufgeteilt ):Wir sagen WP-CLI suchen für
$SITE
(zBhttps://your-site.tld/
) und ersetzen es mit einer leicht modifizierten Version:${SITE/http:/https:}
. Dies ist eine Operation bash Zeichenfolge ersetzt , dass ersetzthttp:
mithttps:
. (Wenn Sie also die Variablen auflösen, sieht der Befehl so auswp search-replace "http://your-site.tdl/" "https://your-site.tld/"
).search-replace
hat viele mögliche Optionen, die in der Dokumentation beschrieben werden . Im Beispiel habe ich diese verwendet:--dry-run
und--verbose
sind eindeutig hilfreich beim Testen des Befehls.--network
wendet den Such- und Ersetzungsvorgang auch auf die Netzwerktabellen an.--precise
Weist WP-CLI an, PHP anstelle von SQL zum Suchen und Ersetzen der Werte zu verwenden. Dadurch wird sichergestellt, dass serialisierte Werte nicht beschädigt werden.Schließlich wird die Schleife mit geschlossen
Lassen Sie es mich noch einmal betonen: Testen Sie dies gründlich, bevor Sie es in der Produktion einsetzen. Sie sollten verstehen, wie es funktioniert und was WP-CLI tut. Ich habe zuvor WP-CLI verwendet, um solche Searach-Operationen durchzuführen und Operationen zu ersetzen, um Multisites auf andere Domain-Namen zu migrieren, aber nicht, um von
http
zu zu wechselnhttps
.Es kann einige Randfälle geben: WP-CLI liest das weiterhin
wp-config.php
und versucht, mithilfe der Konstanten in ein passendes «Netzwerk» in der Datenbank zu findenwp-config.php
. Wenn Sie eine Site (die Datenbank) manipulieren, aber nicht die andere (die Konstanten inwp-config.php
), können Probleme auftreten. Aber für Ihren Fall denke ich , dass das kein Problem sein wird , wie sie typischerweise WP verlässt sich aufDOMAIN_CURRENT_SITE
und ,PATH_CURRENT_SITE
und sie werden sowieso nicht ändern. Aber noch einmal, testen Sie dies gründlich.Mit etwas mehr Bash-Magie können Sie diese Schleife auch in Blöcke von 5 oder 10 Sites aufteilen und Schritt für Schritt durchlaufen.
quelle
Um sicherzustellen, dass alle Ihre Websites HTTPS in Ihrer verwenden
post_content
, können Sie eine von zwei Optionen ausführen:1. Backend: Führen Sie eine SQL-Abfrage aus
Verwenden Sie die folgende SQL-Abfrage, um sicherzustellen, dass alle Ihre HTTP-Links als HTTPS festgelegt sind:
OLD_URL
wird ersetzt durchhttp://example.com
(Nicht-HTTP)NEW_URL
wird ersetzt durchhttps://example.com
(HTTPS)Dies deckt den
siteurl
,,home
und alle Ihre Inhalte auf Ihrer Website für das neue HTTPS ab.2. Frontend: Verwenden Sie das Plugin Suchen & Ersetzen
Ein benutzerfreundlicherer Ansatz besteht darin, das Search & Replace- Plugin zu verwenden, um alle Tabellen, die Ihr altes HTTP enthalten, einfach zu ersetzen und in ein HTTPS zu ändern. Der Prozess ist einfach zu verwenden und Sie können eine Vorschau der betroffenen Tabellen und Zeilen anzeigen, bevor Sie diese Änderungen anwenden.
Vorwarnung
Bevor Sie Änderungen vornehmen, ist es meines Erachtens selbstverständlich, immer eine Sicherungskopie Ihrer Datenbank zu erstellen, falls etwas schief geht.
quelle
HTTP ist ein Standardprotokoll, das von den meisten Websites verwendet wird, um die Informationen über das Web zu verarbeiten. Ihre Website wird unter HTTPS ohne Fehlermeldung ausgeführt. Dies bedeutet, dass Ihr Zertifikat korrekt installiert wurde. Sie sollten Ihre gesamte Website von HTTP auf HTTPS migrieren.
Erfahren Sie, wie Sie HTTP zu HTTPS für WordPress verschieben
quelle