Se puede realizar mediante esta sencilla función:
function averiguaUrl() {
$protocolo = $_SERVER['HTTPS'] == 'on' ? 'https' : 'http'; // Se extrae el protocolo (http o https)
return $protocolo.'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; // Se devuelve la URL completa
}
Visto en PHP Tutorials Examples: Get Full URL.