Heim  >  Artikel  >  Backend-Entwicklung  >  Hier sind einige Titeloptionen, die sich auf das Problem und die Lösung konzentrieren: Option 1 (direkt und prägnant): So ermitteln Sie das richtige Site-URL-Protokoll in PHP (http vs. https) Option 2 (Betonung des Cha

Hier sind einige Titeloptionen, die sich auf das Problem und die Lösung konzentrieren: Option 1 (direkt und prägnant): So ermitteln Sie das richtige Site-URL-Protokoll in PHP (http vs. https) Option 2 (Betonung des Cha

DDD
DDDOriginal
2024-10-27 11:50:02114Durchsuche

Here are a few title options, focusing on the problem and solution:

Option 1 (Direct and concise):
How to Determine the Correct Site URL Protocol in PHP (http vs https)

Option 2 (Emphasizing the challenge):
PHP: Accurately Detecting Site URL Protocol (h

PHP Get Site URL Protocol – http vs. https

Problemeinführung

Die Bestimmung des aktuellen Site-URL-Protokolls (http oder https) ist für die Sicherstellung von entscheidender Bedeutung Sicherer und konsistenter Website-Betrieb. Bei der lokalen Entwicklung oder ohne SSL kann sich das Testen der Genauigkeit solcher Funktionen jedoch als schwierig erweisen.

Funktionsimplementierung

Die bereitgestellte Funktion „siteURL“ versucht, das Protokoll basierend auf dem Vorhandensein des zu erstellen „HTTPS“-Schlüssel im $_SERVER-Array und sein nicht leerer oder „off“-Wert. Alternativ prüft es, ob der „SERVER_PORT“ 443 ist. Wenn eine der Bedingungen erfüllt ist, wird „https://“ zurückgegeben, andernfalls „http://“.

Alternativen und Bedenken

Wenn kein SSL vorhanden ist, muss zur genauen Bestimmung des Protokolls das Array $_SERVER untersucht werden. Wenn jedoch SSL aktiv ist, konvertiert der Server die URL automatisch in https, auch wenn die Ankertag-URL http verwendet. Daher kann es unnötig erscheinen, nach dem Protokoll zu suchen.

Verbesserte Implementierung

Um dieses Problem zu beheben, wird eine verbesserte Implementierung vorgeschlagen, bei der sowohl HTTPS- als auch HTTP-Protokollindikatoren im $_SERVER überprüft werden Array. Wenn eine dieser Bedingungen erfüllt ist, gibt die Funktion das richtige Protokoll zurück.

<code class="php">if (isset($_SERVER['HTTPS']) &&
    ($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1) ||
    isset($_SERVER['HTTP_X_FORWARDED_PROTO']) &&
    $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') {
  $protocol = 'https://';
}
else {
  $protocol = 'http://';
}</code>

Dieser Ansatz gewährleistet Genauigkeit in beiden Fällen, unabhängig davon, ob SSL aktiviert ist oder nicht.

Das obige ist der detaillierte Inhalt vonHier sind einige Titeloptionen, die sich auf das Problem und die Lösung konzentrieren: Option 1 (direkt und prägnant): So ermitteln Sie das richtige Site-URL-Protokoll in PHP (http vs. https) Option 2 (Betonung des Cha. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn