HTTPS-Anfragen in PHP erkennen
Das problem, das ich habe, hat damit zu tun, mit der Notwendigkeit zu halten einige urls einer website, geschützt durch HTTPS und der rest gekickt zu HTTP.
In der Regel haben Sie $_SERVER['HTTP_HTTPS']
oder $_SERVER['HTTPS']
(je nach Geschmack von Apache). Sie können auch überprüfen Sie die port - 80 für normalen Datenverkehr und 443 für HTTPS.
Mein problem ist, dass die Zertifikat sitzt auf dem loadbalancer, und alle diese Variablen sind nicht verfügbar, und der webserver sieht http://www.foo.com auf port 80. Eine Möglichkeit dieses Problem zu beheben ist zu sagen, die loadbalancer zum senden von Datenverkehr auf einem anderen port, aber ich Frage mich, ob es andere Wege gibt, um zu erkennen, HTTPS kommen aus der load-balancer?
InformationsquelleAutor der Frage deadprogrammer | 2009-01-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn der load balancer ist am anderen Ende der SSL-Verbindung, können Sie nicht bekommen Sie mehr Infos über den Lastenausgleich ausdrücklich vorsieht. Ich würde gehen Sie zum hinzufügen einer http-header, kann es schon sein, dies zu tun, sichern Sie alle HTTP-Header und suchen.
Als weitere Lösung können Sie die Umleitung auf die load-balancer auf URL-Basis.
InformationsquelleAutor der Antwort hayalci
Wenn jemand hat das gleiche Problem hinter Amazon AWS Elastic Load Balancer, die Lösung ist einfach, weil die
$_SERVER
Variablen gehören:Ist also das Protokoll, das Sie verwenden könnten:
InformationsquelleAutor der Antwort mrucci
$_SERVER['HTTP_X_FORWARDED_PROTO'] scheint ein gute Lösung für joomla-Nutzer da, wenn der loadbalancer hat die rediretion und legen Sie die force_ssl "die Einstellung" 1 oder 2 ist, dann werden Sie am Ende in einer Endlosschleife, weil joomla immer sieht http:
InformationsquelleAutor der Antwort Elyoukey