* Improved HTTPS detection
authorfidian <fidian@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Sun, 29 Apr 2001 15:04:26 +0000 (15:04 +0000)
committerfidian <fidian@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Sun, 29 Apr 2001 15:04:26 +0000 (15:04 +0000)
git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@1323 7612ce4b-ef26-0410-bec9-ea0150e637f0

functions/strings.php

index 0180871f757f64850028a7a0e7cde59c280af727..4dea476e28fa63855e19343f7bb77f970524e01d 100644 (file)
       #
       #   http://www.myhost.com/squirrelmail/src/login.php
    
-      global $PHP_SELF, $SERVER_NAME, $HTTPS, $HTTP_HOST, $SERVER_PORT;
-
-      // check for HTTPS mode (you must have 'SSLOptions +StdEnvVars'
-      // in your apache config).
-      $HTTPS=getenv('HTTPS');
+      global $PHP_SELF, $SERVER_NAME, $HTTP_HOST, $SERVER_PORT,
+         $HTTP_SERVER_VARS;
 
       // Get the path
       $path = substr($PHP_SELF, 0, strrpos($PHP_SELF, '/'));
    
       // Check if this is a HTTPS or regular HTTP request
       $proto = 'http://';
-      if(isset($HTTPS) && !strcasecmp($HTTPS, 'on') ) {
+      // If you have 'SSLOptions +StdEnvVars' in your apache config
+      // OR if you have HTTPS in your HTTP_SERVER_VARS
+      // OR if you are on port 443
+      $getEnvVar = getenv('HTTPS');
+      if ((isset($getEnvVar) && !strcasecmp($getEnvVar, 'on')) ||
+          (isset($HTTP_SERVER_VARS['HTTPS'])) ||
+         (isset($HTTP_SERVER_VARS['SERVER_PORT']) &&
+          $HTTP_SERVER_VARS['SERVER_PORT'] == 443)) {
         $proto = 'https://';
       }