Yet another method for determining "base_url"

This one is great because we don't have to deal with the special cases:
* in Windows, dirname('/foo/index.php') gives "/foo", but dirname('/index.php') gives "\" instead of "/"
* dirname() doesn't include the trailing slash, with the expection of "/" (root)

props @narfbg
diff --git a/system/core/Config.php b/system/core/Config.php
index b2689a6..41367d3 100644
--- a/system/core/Config.php
+++ b/system/core/Config.php
@@ -76,16 +76,9 @@
 		// Set the base_url automatically if none was provided
 		if (empty($this->config['base_url']))
 		{
-			$script_dir = strtr(dirname($_SERVER['SCRIPT_NAME']), '\\', '/');
-
-			if ($script_dir !== '/')
-			{
-				$script_dir .= '/';
-			}
-
 			$base_url = (is_https() ? 'https' : 'http').'://'
 				.(isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : 'localhost')
-				.$script_dir;
+				.substr($_SERVER['SCRIPT_NAME'], 0, -strlen(basename($_SERVER['SCRIPT_NAME'])));
 
 			$this->set_item('base_url', $base_url);
 		}