dirname($path) devuelve el nombre del directorio físico a la ruta introducida $path.
Lo que tú buscas es algo más bien como
Código PHP:
$protocol = @$_SERVER['SSL'] ? 'https://' : 'http://';
$servidor = $_SERVER['SERVER_NAME'];
$port = (@$_SERVER['SSL'] && $_SERVER['SERVER_PORT'] != 443) || (!@$_SERVER['SSL'] && $_SERVER['SERVER_PORT'] != 80) ? ':'.$_SERVER['SERVER_PORT'] : '';
$ruta = dirname($_SERVER['SCRIPT_NAME']);
define('APPLICATION_URL', $protocol.$servidor.$port.$ruta.'/index.php');
lo que en una única linea (para hacer más breve el código del define) quedaría algo como:
define('APPLICATION_URL', 'http'.(@$_SERVER['SSL'] ? 's':'').'://'.$_SERVER['SERVER_NAME'].((@$_SERVER['SSL'] && $_SERVER['SERVER_PORT'] != 443) || (!@$_SERVER['SSL'] && $_SERVER['SERVER_PORT'] != 80) ? ':'.$_SERVER['SERVER_PORT'] : '').dirname($_SERVER['SCRIPT_NAME']).'/index.php');
Sencillo, no?
:D