古いIE利用時、SSLページからファイルダウンロードができない

IE9未満で起きる模様(IE8で確認)。

HTTPヘッダーのキャッシュ関係パラメータによって起こるものらしい。

今回はExcelファイルのダウンロードにおいて起こったので、以下のサンプルのような感じでやるとダウンロードできた。

<?php
if (preg_match('/MSIE [678]/', $_SERVER['HTTP_USER_AGENT'])) {
    //古いIE対応
    header('Cache-Control: private');
    header('Pragma: ');
    header('Content-Type: application/octet-stream');
} else {
    //モダンブラウザ
    header('Content-Type: application/vnd.ms-excel');
}
header('Content-Disposition: attachment; filename="hoge.xls"');

// output...