HTTPS- und HTTP-ExpressionEngine-Site-URL-Tag

8

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.

    
Gareth 02.11.2012, 15:25
quelle

6 Antworten

5

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?

    
CreateSean 02.11.2012, 16:13
quelle
7

Ich habe eine große Hilfe zu diesem Problem zuvor bekommen. Ich hoffe, dass es dir jetzt auch nützlich ist.

    
Scott Hepler 02.11.2012 16:00
quelle
6

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

    
Victor Gutierrez 02.11.2012 20:23
quelle
3

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:

%Vor%

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

    
unexplainedBacn 02.11.2012 17:32
quelle
1

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

%Vor%

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:)

    
Benjamin Mailian 21.02.2013 07:17
quelle
0

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%     
notacouch 08.11.2012 18:52
quelle

Tags und Links