header('Expires: 過去の時間');
header('Cache-Control: no-cache');
header('Pragma: no-cache');

キャッシュを無効っていまいちどういうことかわからないのですが、
上記のヘッダーを入れたページにアクセス(ローカルのApacheサーバ)
ブラウザを閉じる(Apacheサーバを停止する)
ブラウザを開いて再度アクセスする(サーバが見つからないのでページ読み込みエラー)

とここまではいいのですが、
このエラーページのソースを表示すると、
最初のページのソースが出ます。(使用ブラウザはFirefoxです)

Firefoxの問題なのかもしれませんが、キャッシュを無効って、
こういうソースをクライアントにとっておかないための処理ではないのでしょうか?