PHP-Site-URL-Protokoll abrufen: HTTP vs. HTTPS
Das Ermitteln des aktuellen Site-URL-Protokolls (HTTP oder HTTPS) in PHP ist für die Sicherheit unerlässlich und konsistenten Website-Betrieb. In diesem Artikel untersuchen wir die Nuancen der Protokollerkennung und beantworten damit verbundene Fragen.
Zunächst haben Sie eine Funktion bereitgestellt, die darauf abzielt, das Protokoll basierend auf bestimmten Servervariablen einzurichten. Wir schlagen jedoch einen alternativen Ansatz vor, der den Prozess vereinfacht.
Verbesserte Protokollerkennungsfunktion:
<code class="php">function siteURL() { $protocol = isset($_SERVER['HTTPS']) ? 'https://' : 'http://'; $domainName = $_SERVER['HTTP_HOST'].'/'; return $protocol.$domainName; } define( 'SITE_URL', siteURL() );</code>
Diese verbesserte Funktion:
Umgang mit SSL und Konvertierung:
Unter SSL konvertieren moderne Browser HTTP-URLs normalerweise automatisch in HTTPS. Der Server erzwingt diese Konvertierung jedoch nicht. Wenn Ihre Anker-Tag-URLs immer noch HTTP verwenden, gibt die Funktion siteURL() korrekt HTTP zurück.
Auswirkungen auf die Sicherheit:
Im Allgemeinen ist die Erkennung des Protokolls nicht erforderlich sicherer Betrieb unter SSL. Es kann jedoch in bestimmten Szenarien nützlich sein, in denen Sie das Protokoll explizit in Skripten oder URLs definieren möchten.
Die gewählte Antwort:
Die vorgeschlagene Funktion im Antwort, die Sie erhalten haben:
<code class="php">if (isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1) || ...</code>
Obwohl es technisch korrekt ist, erweitert es die Logik zur Erkennung von HTTPS unnötig. Die oben dargestellte vereinfachte Funktion erzielt dasselbe Ergebnis prägnanter.
Das obige ist der detaillierte Inhalt vonWie können Sie das URL-Protokoll (HTTP oder HTTPS) Ihrer Website in PHP zuverlässig ermitteln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!