diff --git a/var/Typecho/Request.php b/var/Typecho/Request.php index eb1212ad..50fad8c5 100644 --- a/var/Typecho/Request.php +++ b/var/Typecho/Request.php @@ -237,7 +237,9 @@ class Typecho_Request */ public static function isSecure() { - return (!empty($_SERVER['HTTPS']) && 'off' != strtolower($_SERVER['HTTPS'])) + return (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && !strcasecmp('https', $_SERVER['HTTP_X_FORWARDED_PROTO'])) + || (!empty($_SERVER['HTTP_X_FORWARDED_PORT']) && 443 == $_SERVER['HTTP_X_FORWARDED_PORT']) + || (!empty($_SERVER['HTTPS']) && 'off' != strtolower($_SERVER['HTTPS'])) || (!empty($_SERVER['SERVER_PORT']) && 443 == $_SERVER['SERVER_PORT']) || (defined('__TYPECHO_SECURE__') && __TYPECHO_SECURE__); }