Commit: 14c7b07c47c7913bf84bb6684f973f2689aa4633 Author: Hannes Magnusson <[email protected]> Wed, 18 Dec 2013 11:31:35 -0800 Parents: 18716b8694db8904f91d8cb22e6bb0fdb5c6a61e Branches: master
Link: http://git.php.net/?p=web/php.git;a=commitdiff;h=14c7b07c47c7913bf84bb6684f973f2689aa4633 Log: Hack in https support Changed paths: M include/site.inc Diff: diff --git a/include/site.inc b/include/site.inc index 410a404..6533a63 100644 --- a/include/site.inc +++ b/include/site.inc @@ -494,46 +494,59 @@ function get_shortname($page) { // it works under more then one name). SERVER_NAME is // the name of the Apache vhost. +if (!isset($_SERVER["HTTPS"]) || $_SERVER["HTTPS"] != "on") { + $proto = "https"; +} else { + $proto = "http"; +} -if($_SERVER["SERVER_PORT"] != '80') { - $MYSITE = 'http://' . $_SERVER["SERVER_NAME"] . ':' . (int)$_SERVER["SERVER_PORT"] . '/'; +if($_SERVER["SERVER_PORT"] != '80' || $_SERVER["SERVER_PORT"] != 443) { + $MYSITE = $proto . '://' . $_SERVER["SERVER_NAME"] . ':' . (int)$_SERVER["SERVER_PORT"] . '/'; + $msite = 'http://' . $_SERVER["SERVER_NAME"] . ':' . (int)$_SERVER["SERVER_PORT"] . '/'; } else { - $MYSITE = 'http://' . $_SERVER["SERVER_NAME"] . '/'; + $MYSITE = $proto . '://' . $_SERVER["SERVER_NAME"] . '/'; + $msite = 'http://' . $_SERVER["SERVER_NAME"] . '/'; } // If this site does not exist - it is most likely because // CC.php.net isn't in this array anymore. if (!isset($MIRRORS[$MYSITE])) { + if (isset($MIRRORS[$msite])) { + $MIRRORS[$MYSITE] = $MIRRORS[$msite]; + unset($MIRRORS[$msite]); + } +} +if (!isset($MIRRORS[$MYSITE])) { // Check if the IP address exists (a fix for the round-robin introduction) if (isset($MIRRORS[$_SERVER['SERVER_ADDR']])) { - // Since it does, we know the servername is fine - $MYSITE = 'http://' . $_SERVER["SERVER_NAME"] . '/'; + // Since it does, we know the servername is fine + $MYSITE = $proto . '://' . $_SERVER["SERVER_NAME"] . '/'; } else { // Try the hostname [without www]. In case the main name above is // not found, we try to find the mirror with the name provided by // the browser (in the Host HTTP header). - if($_SERVER["SERVER_PORT"] != '80') { - $tmp = 'http://' . preg_replace("!^www\\.!", "", $_SERVER["SERVER_NAME"]) . ':' . (int)$_SERVER["SERVER_PORT"] . '/'; - } else { - $tmp = 'http://' . preg_replace("!^www\\.!", "", $_SERVER["SERVER_NAME"]) . '/'; - } + $msite = str_replace("www.", "", $msite); // If the name without www. exists, use it - if (isset($MIRRORS[$tmp])) { - $MYSITE = $tmp; - } - - // If the mirror is not registered with this name, provide defaults - // (no country code, no search, no stats, English default language ...) - if (!isset($MIRRORS[$MYSITE])) { - $MIRRORS[$MYSITE] = array("xx", $MYSITE, FALSE, $MYSITE, MIRROR_VIRTUAL, FALSE, "en", MIRROR_OK); + if (isset($MIRRORS[$msite])) { + $MYSITE = str_replace("www.", "", $MYSITE); + if (!isset($MIRRORS[$MYSITE])) { + $MIRRORS[$MYSITE] = $MIRRORS[$msite]; + unset($MIRRORS[$msite]); + } } } } +// If the mirror is not registered with this name, provide defaults +// (no country code, no search, no stats, English default language ...) +if (!isset($MIRRORS[$MYSITE])) { + $MIRRORS[$MYSITE] = array("xx", $MYSITE, FALSE, $MYSITE, MIRROR_VIRTUAL, FALSE, "en", MIRROR_OK); +} + // Override mirror language with local preference if (isset($_SERVER['MIRROR_LANGUAGE'])) { if (isset($LANGUAGES[$_SERVER['MIRROR_LANGUAGE']])) { -- PHP Webmaster List Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
