La détection HTTPS vs HTTP sur le serveur de l'envoi de retour rien d'utile

Donc très similaires à "Détecter les requêtes https php":

Voulez avoir https://example.com/pog.php aller à http://example.com/pog.php ou même vice-versa.

Problèmes:

  • Ne peut pas lire quoi que ce soit à partir de $_SERVER["HTTPS"], puisqu'il n'est pas là
  • Serveur envoie les deux requêtes sur le port 80, ne peut donc pas vérifier 443 sur la version HTTPS
  • apache_request_headers() et apache_response_headers() reviennent à la même chose
  • Ne pouvez pas dire le loadbalancer rien ou envoyer supplémentaire somethings
  • Serveur de données de retour d'expérience recraché par la page sur les deux appels d'URL est exactement le même pour enregistrer l'ID de session. La poisse.

Y a sur la page des moyens pour détecter si on l'appelle via SSL ou non-SSL?

Modifier: $_SERVER["HTTPS"] n'est pas là, allumé ou pas, peu importe si vous êtes à la recherche de sites via SSL ou non-SSL. Pour une raison quelconque, l'hébergement a choisi pour répondre à toutes les requêtes HTTPS cryptée, mais vers le bas le port 80. Et ainsi donc, les $_SERVER["HTTPS"] n'est jamais sur, pas là, pas seulement une rétroaction utile sur ce serveur point. Si ce paramètre est toujours vide.

(Et oui, ça veut dire qu'il se battant pavillon dire FF ou Chrome pour une partie de certificat SSL invalide. Mais cette partie n'a pas d'importance.)

Aussi, le plus qui peut être obtenu à partir de la détection de l'URL est jusqu'au point de barres obliques. Le PHP ne peut pas voir si la demande a https ou http à l'avant.

OriginalL'auteur random | 2009-02-16