cache vazio do navegador do botão voltar da sessão

Sei que essa é uma pergunta comum, mas não consigo fazer isso funcionar.

Um usuário efetua login e uma sessão e uma variável são adicionadas.

Em seguida, o usuário efetua logout e um script php é executado e a sessão é destruída.

Imprimo a sessão na página index.php após o logout e ela está vazia.

Mas o usuário ainda pode ver a página de login se pressionar de volta ???

Estou usando o seguinte código para destruir a sessão:

session_start();
session_unset();
session_destroy();
session_write_close();
setcookie(session_name(),'',0,'/');
session_regenerate_id(true);
unset($_SESSION["username"]); 
header("Location: index.php");

usando isso para testar se a sessão foi destruída na página index.php:

print_r("session".$_SESSION);

Cada página também possui esse código para impedir o armazenamento em cache:

 header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");    // Date in the past
 header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
 header ("Cache-Control: no-cache, must-revalidate");  // HTTP/1.1
 header ("Pragma: no-cache");

 <meta http-equiv="expires" content="WED, 01 JUL 2009 05:00:00 GMT" />
 <meta http-equiv="cache-control" content="no-cache" />
 <meta http-equiv="pragma" content="no-cache" />

Posso impedir que o usuário digite o URL do endereço da web e acesse as páginas seguras usando o código abaixo:

if(!isset($_SESSION['user']))
{ 
echo 'no session in here';

session_start();
session_unset();
session_destroy();
session_write_close();
setcookie(session_name(),'',0,'/');
session_regenerate_id(true);
$_SESSION['username'] = '';
header("Location: index.php");
die("Redirecting to: index.php"); 
} 

questionAnswers(1)

yourAnswerToTheQuestion