Hola, mira tengo varias dudas de lo que estas haciendo, haci que vamos a ordenar.
1.- tienes un panel de control o administración en donde el usuario hace login, con su user y pass para poder acceder (este es el index.php), a su vez supongo tienes una pagina donde se envían estos datos (llamemosla control.php), para ver si el login es correcto o falso.
2 - de ser falso lo vuelvo al index.php de ser true o verdadero lo envio a noticias.php, por dar un ejemplo practico de lo que estas queriendo hacer, e inicio la session del usuario.
3.-entonces en noticias.php tengo un listado con todas las noticias ya sea ordenadas por id o alfabeticamente etc. y en donde se selecciono una me abre, noticia.php?id=45
donde el id 45 es el numero de la noticia que abri.
4 entonces, si le envio a alguien un link.
http://www.tupaginaweb.com/sistema/noticia.php?id=45
por decir algo.
esta pagina deberia abrirse automaticamente si el usuario esta logeado eso si la session aun esta open. si el usuario esta sin login obiamente lo enviara al index.php
Es eso lo que necesitas hacer? hasta donde veo lo estas enviando al index.php
supongo en tu link haces
http://www.tupaginaweb.com/sistema/index.php?id=45
pero en tu header location lo vuelves a enviar al index y hace un tipo loop y el GET se pierde
en tu header location deberías enviarlo a la pagina que deseas que seria noticia.php.
no se si me explico, espero que sea eso lo que necesitas.