PHP: HTTP oder HTTPS?
In PHP können Sie die Variablen $_SERVER['HTTPS'] verwenden, um zu überprüfen, ob die aktuelle Seite über HTTPS ausgeliefert wird. Wenn die Variable gesetzt ist und den Wert "on" hat, wird die Seite über HTTPS ausgeliefert.
Sie können auch die Variable $_SERVER['SERVER_PORT'] verwenden, um die verwendete Portnummer für die aktuelle Verbindung zu überprüfen. Port 443 ist der Standardport für HTTPS-Verbindungen, daher ist es wahrscheinlich, dass die Seite über HTTPS ausgeliefert wird, wenn der Wert dieser Variable 443 ist.
PHP bietet auch eine Funktion namens https_request()
, die verwendet werden kann, um zu überprüfen, ob die aktuelle Seite über HTTPS ausgeliefert wird.
Mit PHP können Sie den Benutzer auch auf die HTTPS-Version Ihrer Website umleiten, indem Sie einen einfachen Code-Schnipsel am Anfang Ihres Skripts oder in der htaccess-Datei verwenden:
<?php
if ($_SERVER['HTTPS'] != "on") {
$url = "https://" . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
header("Location: $url");
exit();
}
Dies leitet alle eingehenden Anfragen auf die HTTPS-Version der Website weiter.
Es ist wichtig zu beachten, dass, wenn Sie einen Lastenausgleich oder einen Reverse-Proxy verwenden, dieser möglicherweise die SSL-Terminierung durchführt. In diesem Fall müssen Sie die von Lastenausgleich oder Proxy gesetzten Header überprüfen, um zu erkennen, ob die Anforderung über HTTPS oder nicht gekommen ist.