IEでSSL時にPDFやCSVファイルをダウンロードさせる方法

SSL時にPDFやCSVファイルをダウンロードさせる方法

いろいろと困ったちゃんなIEですが、IE8より前のバージョンだとSSL時に指定したファイルをダウンロードできないバグがあります。

"〇〇をダウンロードできません。
このインターネットのサイトを開くことができません。要求されたサイトが使用できないか、見つけることができません。後でもう一度やり直してください。"

という様なエラーがポップしてくるやつです。

どうやらサーバに渡るheader情報に問題があるようです。

header ("Content-Disposition: attachment; filename=$file_name");
header ("Content-Length:$file_size");
header ("Content-type: application/x-csv;charset=Shift_JIS");
/*
PDFなら
header ("Content-type: application/pdf;charset=Shift_JIS");
*/

これだとエラーが出ます。

header('Cache-Control: public');
header('Pragma: public');

header ("Content-Disposition: attachment; filename=$file_name"); 
header ("Content-Length:$file_size");
header ("Content-type: application/x-csv;charset=Shift_JIS");
/*
PDFなら
header ("Content-type: application/pdf;charset=Shift_JIS");
*/

と、ヘッダーにpublicを指定すると動きます。

サーバ側のphp.iniの設定で自動でヘッダーにpublicを渡すように設定しても解決出来ます。

参考
PHP :: キャッシュを制御するヘッダ「session.cache_limiter」 [Tipsというかメモ]