Ich habe eine Wordpress-Website auf einer AWS EC2-Instanz ausgeführt. Dies wird über einen AWS Elastic Load Balancer bereitgestellt, für den HTTPS mit einem Zertifikat aktiviert wurde, das ich von Amazon erhalten habe.Wordpress get_template_directory_uri() hinter Load Balancer
Die Absicht ist, sowohl eine HTTP- als auch eine HTTPS-Version der Website bereitzustellen. Laden der http-Version funktioniert gut.
Wenn ich die https-Version jedoch lade, erhalte ich Mixed-Content-Fehler, weil get_template_directory_uri()
immer http-Links zurückgibt. Die Funktionsweise des Load Balancers ist, dass das TLS am LB endet und über Port 80 mit der tatsächlichen EC2-Instanz kommuniziert. Daher gibt es für die Instanz selbst kein HTTPS.
Eine Menge davon ist jenseits meiner Fähigkeit zu heilen. Ich weiß gerade genug, um herausgefunden zu haben, was das Problem zu sein scheint, aber ich bin mir nicht sicher, was der richtige Weg ist, es zu beheben.
Angenommen, ich möchte immer noch HTTP und HTTPS-Versionen der Seite (es gibt keinen E-Commerce oder Auth auf der Seite - es ist nur informativ), wie soll ich gehen, um dies zu beheben?
FYI, die EC2-Instanz läuft auf einer Amazon ABI, die im Grunde RHEL ist.
Danke. Es sieht so aus, als ob der Code, den du gepostet hast, alle Links in "https" -Links umwandelt. Ist das richtig? Also würde die Seite selbst über "http" bedient werden, aber alles, was darin eingebettet ist, würde über "https" bedient werden? –
Doh - Entschuldigung - hat meine Antwort bearbeitet ... Besser? – MacPrawn
Oh, OK, ich verstehe es jetzt. Ist es sicher anzunehmen, dass alle (angenommen wir modernen) Browser '//' in 'http [s]: //'? –