it-swarm.com.de

SSL bricht den Customizer ab: Die Seite wird nicht von Ajax zurückgegeben

Ich habe eine WordPress-Installation mit einem Comodo-SSL-Zertifikat. Ich habe das WordPress HTTPS-Plugin installiert und verwende das AZ-Thema, und der Administrator ist so eingestellt, dass es über HTTPS geladen wird. So weit, ist es gut.

Beim Theme-Customizer erhalte ich ein Symbol zum ständigen Laden (nicht zu verwechseln mit einem WSOD). Der AJAX -Aufruf, der den Homepage-Inhalt zurückbringt, ist leer, außer für das WP_CUSTOMIZER_SIGNATURE-Token. Das ist alles, was die Antwort beinhaltet. Wenn ich das WordPress HTTPS-Plugin deaktiviere (oder auf andere Weise das Laden des Administrators über SSL deaktiviere), funktioniert der Customizer hervorragend. Das Deaktivieren/Aktivieren anderer Plugins hat keine Auswirkung. Dies geschieht auch mit dem Thema "Stock Twenty Fifteen" (siehe Abbildung unten).

Hier ist ein Screenshot von dem, was ich in Firebug sehe (und das sowohl in Browsern als auch auf Browserstack-VMs reproduzierbar ist):

Screenshot of Firebug console in customizer view

Falls relevant, wird die Site mithilfe von ServerPilot in einem DigitalOcean-Droplet gehostet. Ich habe andere WordPress-Sites, die auf demselben Droplet gehostet werden, und die anderen SSL-fähigen weisen dasselbe Verhalten auf. ModSecurity ist meines Wissens nicht installiert, und ich erhalte einen Statuscode von 200, sodass ich nicht glaube, dass es sich um dieses Problem handelt.

Soweit ich das beurteilen kann, scheint die SHA-1-Meldung auch falsch positiv zu sein (und ich glaube, Firefox ist noch nicht im Begriff, Inhalte auf der Grundlage der SHA-1-Nutzung zu blockieren?). Ich glaube auch nicht, dass es zlib.output_compression bug ist, da ich es explizit zum Testen deaktiviert und versucht habe, die in diesem Ticket aufgelistete Fehlerbehebung durchzuführen, die nicht funktioniert hat.

Ich habe nichts gefunden, das meinem Problem entspricht, was mich denken lässt, dass ich etwas Dummes übersehen habe. Jede Hilfe wird sehr geschätzt, und lassen Sie mich bitte wissen, welche zusätzlichen Informationen hilfreich sein können.

6
Kelly Carter

Aufgrund Ihrer Frage gehe ich davon aus, dass dies das Plugin ist, mit dem Sie SSL aktivieren: WordPress HTTPS .

Da das Plugin seit zwei Jahren nicht mehr aktualisiert wurde und die Support-Fragen nicht geklärt wurden, kann es zu Kompatibilitätsproblemen mit der neuesten Version von WordPress (4.6 zum Zeitpunkt des Schreibens) kommen. Meine Empfehlung, sicherzustellen, dass die URL Ihrer Website überall mit HTTPS ausgeführt wird.

Dies kann durch Ausführen der folgenden SQL-Abfrage in Ihrer Datenbank ( phpMyAdmin ) erfolgen:

UPDATE wp_options SET option_value = replace(option_value, 'HTTP_URL', 'HTTPS_URL') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET guid = replace(guid, 'HTTP_URL','HTTPS_URL');
UPDATE wp_posts SET post_content = replace(post_content, 'HTTP_URL', 'HTTPS_URL');
UPDATE wp_postmeta SET meta_value = replace(meta_value,'HTTP_URL','HTTPS_URL');

Ersetzen Sie die Werte durch folgende Werte:

  • HTTP_URL> Ihr HTTP-Link (http://some.site)
  • HTTPS_URL dein HTTPS Link (https://some.site)

Auf diese Weise wird verhindert, dass Links mit gemischten Inhalten die Funktion beeinträchtigen. Ich habe auch einen WordPress-Thread mit einem ähnlichen Problem gefunden und bin mir nicht sicher, ob Sie ihn bereits angeschaut haben:

Theme Customizer Problem

ANSWER: Dies ist auf eine Inkonsistenz Ihrer globalen URLs zurückzuführen

Ich vermute, irgendwann erkennt der String-Customizer Ihres Plugins einige Elemente nicht, die immer noch über http anstelle von https aufgerufen werden. Viele Plugins enthalten daher absolute Pfade anstelle von Verwandten, um die gesamte Plattform zu reparieren: admin, content und includes Sie können Folgendes tun.

  1. Installiere ein Plugin namens WP Migrate DB
  2. Einmal installiert und aktiviert Gehen Sie zu Tools -> Migrate DB
  3. Die neue URL muss identisch sein, ebenso der Dateipfad.
  4. Laden Sie das Backup herunter (warum habe ich Ihnen das gesagt, anstatt nur direkt von Ihrem phpmyadmin oder dbms zu exportieren? Weil dies eine sicherere Möglichkeit ist, diese Informationen zu erhalten, ist das alles. Beim Exportieren können Sie einige Anweisungen zum Löschen vermeiden. Dies führt dazu, dass " backup "eine fehlersichere Methode).
  5. Speichern Sie es in einem bestimmten Verzeichnis, und zwar in einer nicht komprimierten Kopie.
  6. Gehen Sie im Terminal in dieses Verzeichnis und führen Sie den folgenden Befehl aus:

Sudo find . -type f -name '*.sql' -exec sed -i '' s,http://yoursite,https://yoursite,g {} +

  1. Laden Sie die neue Datei hoch und importieren Sie sie auf Ihren phpmyadmin oder Ihre Web-Datenbank.

  2. Der Fehler muss weg sein.

WICHTIG.

Falls es nicht funktioniert hat, haben Sie Ihre Sicherungskopie von Schritt 5 noch unberührt.

ZUSÄTZLICHE INFORMATIONEN . Haben Sie überprüft, ob die Stamm-URL der Website mit https anstelle von http beginnt?

Sie können dies unter Einstellungen -> Allgemein überprüfen

WordPress-Adresse (URL)

Site-Adresse (URL)

Viel Glück.

0
luis