No sé como has implementado tu sistema de "banderas y módulos" .. pero es eso lo que se debe hacer en esos casos .. No sé si usastes sesiones para tal fin (para definir tus "banderas") pero es lo que se suele usar.
Cita: El problema que le veo a esto es que el usuario, al pulsar el boton de atras, esta acostumbrado a ver la pagina que acaba de abandonar, asi que si le devuelvo a la index quiza le parezca confuso.
Según ya tienes .. controlas en todo momento que se ha producido la situación de que tu usuario ha pasado denuevo por pag2.php o a accedido directamente cuando el procedimiento que has definido .. requiere que llegue a pag2.php desde pag1.php. En ese caso .. para evitar esa "confusión" a tu usuario .. en lugar de redireccionar a tu index.php automáticamente .. debes comunicar a tu usuario de ese hecho .. de que "no se puede volver atras" ..
Puedes usar una simple variable de control en el redireccionamiento que haces hacia index.php cuando se cumpla esa condición que ya controlas con tus banderas...
Genera un link tipo:
index.php?error=1
y en index.php
if (isset($_GET['error'])){
echo "Ha ocurrido un error .. NO puede volver atras o acceso incorrecto .. bla blabla";
}
Por supuesto que si usas sesiones .. puedes propagar esa variable de control en una variable más de sesión y no tener que andar propagandola en el URL ..
Un saludo,