E' una funzioncina di utilità che ho avuto l'esigenza di scrivere tempo addietro, spero ti torni utile. (gira sia sotto win sia sotto linux)

Codice PHP:
<?php

function currentUrlPath()
{
    
$s = ((isset($_SERVER['HTTPS']) && is_null($_SERVER['HTTPS']))? '' : (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 's''');
    
$port = ($_SERVER['SERVER_PORT'] == '80') ? '' : (':' $_SERVER['SERVER_PORT']);
    
$path str_replace(implode('/'explode('\\\\\\'$_SERVER['DOCUMENT_ROOT'])), ''implode('/'explode('\\\\\', dirname(__FILE__))));

    return '
http'. $s .'://'. $_SERVER['SERVER_NAME'] . $port . $path . '/';
}


echo 
currentUrlPath();
    
?>

Edit: modifico il post per ovviare a dei problemi di escape col forum che taglia alcuni caratteri.