Detects the base URL using the PHP $_SERVER variables.
$file: The name of the file calling this function so we can strip it out of the URI when generating the base_url.
The auto-detected $base_url that should be configured in settings.php
function drupal_detect_baseurl($file = 'install.php') {
$proto = $_SERVER['HTTPS'] ? 'https://' : 'http://';
$host = $_SERVER['SERVER_NAME'];
$port = $_SERVER['SERVER_PORT'] == 80 ? '' : ':' . $_SERVER['SERVER_PORT'];
$uri = preg_replace("/\\?.*/", '', $_SERVER['REQUEST_URI']);
$dir = str_replace("/{$file}", '', $uri);
return "{$proto}{$host}{$port}{$dir}";
}