Código:
<?php
// variáveis
$destino = "http://www.example.com/folder/";
$timeout = 5; // o timeout só será usado no caso do Meta Redirect. Os restantes redirects irão actuar o mais rápido possível.
// mensagem a mostrar
$texto = htmlentities("Está a ser redireccionado. Se esta página não actualizar em $timeout segundos, clique ") . "<a href='$destino'>aqui</a>.";
// header redirect
header("Location: $destino");
?>
<html>
<head>
<title>A redireccionar...</title>
<meta http-equiv="refresh" content="<?php echo "$timeout;url=$destino"; ?>">
<script type="text/Javascript">window.location = "<?php echo $destino; ?>";</script>
</head>
<body>
<?php echo $texto; ?>
</body>
</html>
É simples:
1 - faz o redirect por um header enviado ao cliente. Se o cliente o souber interpretar, é imediatamente dirigido para a nova página. 100% transparente
2 - se o ponto 1 falhar, faz o redirect via Javascript. Também actua imediatamente, mas o cliente já tem tempo de ver a página (não é totalmente transparente)
3 - se porventura o cliente tiver o Javascript desactivado e o ponto 2 falhar, actua um Meta Redirect, com um timeout definido na variável $timeout. Aí, o cliente terá total consciência de que está a ser redireccionado.
4 - se tudo falhar, o cliente tem uma hiperligação que pode seguir ele mesmo.
Não há como enganar, assim
edit - ah! Isso é para ser o /index.php