Yo hago uso del $_SERVER['HTTP_REFERER'].. y si este no existe, simplemente lo redirijo a mi pagina principal
Código PHP:
if(isset($_SERVER['HTTP_REFERER']) && !empty($_SERVER['HTTP_REFERER'])) //redirijo al referer
else //redirijo a mi pagina principal
Tambien podrias comprobar si el referer proviene de tu misma web o no ^^
Edito: Espera, acabo de entender un poco mas lo que deseas, creo xD
Supongamos que estas en una pagina, y das clic en un enlace que te lleva a una area donde necesitas estar identificado para entrar. Antes de mostrar el contenido restringido, compruebas si esta identificado o no, si no lo esta, lo rediriges al formulario de login y puedes pasarle una variable por sesion o url, que es la pagina a donde el usuario queria entrar.
Supongamos que escogiste pasarla por url.. login.php?redirect=privada.php
En el formulario de login puedes ver si existe la variable rdirect, si existe la pones en un input oculto y cuando se mande el formulario, si el usuario se autentifico correctamente, lo rediriges a la pagina que tenias en ese campo oculto, que es al la que el usuario planeaba ir desde un principio..
No se si me explique, y no se si sea lo que buscas xD