independientemente de la solucion, es decision del usuario si permite o no al navegador enviar dicha informacion conocida como "referrer" (referencia). lo que quiero decir es que el naveador se puede configurar para no enviar el referrer por el heading (encabezado) de la peticion al servidor. lo menciono por si alguna vez te preguntas por que no te funciona para algunos usuarios.
ahora bien, siempre y cuando el referrer se envie, el servidor puede leer dicha informacion tal como Adler mostro. en javascript tambien se puede leer mediante
document.referrer.