Ich habe heute herausgefunden, dass wenn Sie eine EE-Site besuchen, die das Tag {site_url} im Pfad des css-Links im Dokumentkopf verwendet, dass die Site die CSS-Datei nicht laden kann, wenn Sie https eingeben http.
Ich habe das verstanden, indem ich eine htaccess-Datei benutzt habe, um auf http zu kommen, aber ich habe mich gefragt, ob es in EE eine Einstellung gibt, die Sie ändern können, damit beides funktioniert?
Dies ist nur bei Chrome und IE passiert, ich rate davon ab, was Ihr Browser eingerichtet ist, um die Sicherheit zu ermöglichen.
Wenn ich CSS und JS lade, verwende ich nie die Domäne, die ich gerade relativiert habe. zum Beispiel:
%Vor%Wenn Sie versuchen, funktioniert das?
Ich habe eine große Hilfe zu diesem Problem zuvor bekommen. Ich hoffe, dass es dir jetzt auch nützlich ist.
Wenige Leute wissen, dass Sie protokollrelative URLs für Assets verwenden können
Beispiel:
%Vor%Wenn der Browser eine Seite in SSL über HTTPS anzeigt, fordert er das Asset mit dem https-Protokoll an, andernfalls wird es mit HTTP angefordert.
Dies verhindert die schreckliche Fehlermeldung "Diese Seite enthält sowohl sichere als auch nicht sichere Elemente" im IE, sodass alle Ihre Asset-Anfragen im selben Protokoll bleiben.
Weitere Informationen von hier :
Eine relative URL ohne Schema (http: oder https :) gilt laut RTF 3986: Abschnitt 4.2. Wenn ein Kunde daran erstickt, dann ist es die Schuld des Kunden, weil Sie entsprechen nicht dem URI Syntax im RFC angegeben.
Ihr Beispiel ist gültig und sollte funktionieren. Ich habe diese relative URL-Methode verwendet Ich selbst auf stark frequentierten Websites und habe keine Beschwerden gehabt. Wir auch Testen Sie unsere Seiten in Firefox, Safari, IE6, IE7 und Opera. Diese Browser alle verstehe das URL-Format
Sie können PHP in Ihrer system/expressionengine/config/config.php
-Datei verwenden, um die {site_url} -Konfiguration einschließlich des Protokolls dynamisch festzulegen. Etwas wie das:
Sie können Ihre Themenpfade, verschiedene Bildpfade, Upload-Pfade usw. auf dieser Basis in config.php
erstellen. Aber $config['site_url']
beeinflusst die Ausgabe von {path=""}
und {stylesheet}
Tags.
Weitere Ideen finden Sie in der NSM-Bootstrap-Konfigurationsdatei oder im Artikel Configuration von ExpressionEngine für mehrere Server . Informationen zu allen Pfaden, die Sie in config.php
festlegen können, finden Sie unter EE2 Config Overrides
Alle,
Hier habe ich Apache und die Datei Config.php verwendet, um die URLs neu zu schreiben, damit keine "Nicht-SSL-Inhaltswarnungen" von Browsern ausgelöst werden. Ich verwende immer noch die Variablen {path} und {stylesheet} in meinen Vorlagen, weil sie einfach zu gut sind, um sie zu verwerfen:)
In der htaccess-Datei von Apache:
%Vor%Dann in system / expressionengine / config.php
Fügen Sie Ihrem Code die folgenden zwei Zeilen hinzu (stellen Sie sicher, dass Sie diese Variablen nicht an anderer Stelle in der Konfigurationsdatei angegeben haben)
%Vor%Wie ich es verstehe, ist die Variable site_url, was EE für {Stylesheets} und {Pfade} in EE verwendet.
Das sprichwörtliche "Eine letzte Sache":
Wenn Sie immer noch die Nicht-SSL-Warnung erhalten, rufen Sie einfach die Quelle auf und suchen Sie in Ihrer Quelle nach "http: //". Dies sind die Schuldigen. Sie sind hart codierte Links, die nicht mit den Variablen base_url / site_url festgelegt werden.
Sie müssen diese http-Aufrufe in Ihren Posts / templates / Variablen / Snippets suchen und diese Aufrufe durch ein einfaches // ersetzen.
Also ein Anruf nach
sollte jetzt so aussehen:
%Vor%Dies funktioniert für absolute und relative URLs.
Dies gilt auch für den Pfad, den Sie für die Upload-Verzeichnisse der EE-Datei festlegen. Stellt sicher, dass die URL dieser Verzeichnisse so aussieht wie in
%Vor%Und voila, du solltest gut gehen:)
Ich benutze Nginx.
Ich weiß nicht warum, aber Ressourcen laden in verschiedenen Browsern wesentlich schneller, wenn ich absolute URLs (den vollständigen Pfad) anstelle von relativ verwende ( /
, um die Zeichenfolge in der Domäne zu starten als CreateSean sagte , //
, um die Zeichenfolge im Protokoll als zu starten Deviarte sagte ) (oder ist es, dass sie langsamer mit relativen URLs laden? Ich weiß es nicht.). Ergo, keine ihrer Lösungen / Praktiken (beides, was ich früher getan habe ... und immer noch mache) sind heutzutage für meine Umgebung vorzuziehen.
Stattdessen habe ich folgendes in der config.php gemacht:
%Vor%Bitte beachten Sie, dass Sie PHP eventuell mit scheme_url versehen müssen, falls es nicht bereits existiert. Wenn Sie wie ich php-fpm benutzen, fügen Sie dies einfach zu Ihrer Konfiguration hinzu, wie in Ihrer / n Nginx Site Konfiguration (en):
%Vor%bearbeiten:
Schauen Sie sich bootstrap / configs an und einige verwenden die Methode, das Protokoll den Konfigurationsvariablen voran zu stellen (zB der Kommentar von ungeklärterBacn oben ). In Nginx gibt es standardmäßig keine HTTPS-Servervariable, in Ihrer virtuellen Hostkonfiguration für PHP unter ssl fügen Sie Folgendes hinzu:
%Vor%Tags und Links expressionengine