Tengo un servidor Apache2 con PHP 5. En ese servidor apache tengo montados varios Servidores Virtuales.
Por ejemplo, la ruta completa para acceder a una página web sería:
http://192.168.XXX.XXX/proyectos/proyecto_1/index.phpLa ruta con el Servidor Virtual quedaría de la siguiente manera:
http://servidorvirtual/index.phpExplicado un poco la cosa como la tengo montada, me pasa lo siguiente:
Trabajo con sesiones para ir comprobando si el usuario sigue conectado a la página web cada vez que el usuario navega por la página. Si pasa X tiempo sin hacer nada, la sesión se destruye y vuelve a la página de logueo. Para esto cuando inicializo la sesión, creo una variable que la voy pasando por cada página que el usuario visita, para comprobar si sigue conectado. Lo que me pasa es que si entro a la página web por medio de la ruta completa, funciona perfectamente, pero si entro por medio de la ruta corta, las sesiones se inician pero no se mandan a otras páginas.
Para que quede más claro, os pongo a continuación el código que comprueba si el usuario sigue conectado:
<?php
session_start();
//COMPRUEBA QUE EL USUARIO ESTA AUTENTIFICADO
if ($_SESSION["autentificado"] == "SI") {
$aux=1;
$fechaGuardada = $_SESSION["ultimoAcceso"];
$ahora = date("Y-n-j H:i:s");
$tiempo_transcurrido = (strtotime($ahora)-strtotime($fechaGuardada));
if($tiempo_transcurrido >= 900) {
$_SESSION["autentificado"]= "NO";
session_destroy();
header ("Location: index.php");
} else {
$_SESSION["ultimoAcceso"] = $ahora;
}
} else {
header ("Location: index.php");
}
?>
Esta es mi página de control. Cada página de mi web tiene un include a este código para comprobar.
Estoy dándole vueltas y no encuentro la causa.
Alguna solución?
Un saludo.
P.D: Como no sé si es problema de configuración de mi servidor o es problema del código, lo he escrito en esta sección.