En principio con:
$_SERVER['PHP_SELF'] tienes la ruta y nombre del script que estas ejecutando.
Con $_SERVER['HTTP_HOST'] obtienes el "host" (dominio) donde estás ejecutando tu script ..
SERVER["SERVER_PROTOCOL"] te dá el protocolo: http:// o https:// ......
No sé si necesitaras también el "query string" (o variables que se usaron para llamar al scritp) .. eso lo tienes en: $_SERVER['QUERY_STRING']
Con todo eso ya puedes componer tu URL y saber donde se está ejecuntado tu script.
Código PHP:
<?
$url=strtolower(strtok($_SERVER['SERVER_PROTOCOL'], '/')).'://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
?>
Más info:
http://www.php.net/reserved.variables
Un saludo,