Ah, l'unico miglioramento che ti posso suggerire, è che con $_SERVER['HTTP_HOST'] ti risparmi l'ultimo if
Inoltre (ma questa l'ho copiata dal manuale di dirname...), questa è una soluzione molto elegante per recuperare il prefisso:
$url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on')) ? 'https://' : 'http://';