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);
}