tohokuaikiのチラシの裏

技術的ネタとか。

I.E.はSSL領域でダウンロードするときに注意

PHPでファイルのダウンローダを作ってて、ローカルではO.K。Safari/FF/Operaもそれぞれに場合分けしてHeaderを作って・・・・本番環境で動かない・・・・。ダウンロードができない。変なアラート開く。

しかも、I.Eだけ。これ、Safariだけとかなら無視しようかなと思ったんだけど。


小一時間ほど悩んで、とりあえず検索。わからん。。。wgetでHTTPheaderを見比べてみる・・・・。おなじや。。。

ん・・・・・とりあえず、I.Eのアラートするエラーメッセージで検索。

google:このインターネットのサイトを開くことができませんでした。要求されたサイトが使用できないか


わからん。


環境の違い・・・・・・・あ、SSL

google:このインターネットのサイトを開くことができませんでした。要求されたサイトが使用できないか SSL
あったー。
Internet Explorer で SSL Web サイトの Office 文書を開けない。しかし、Pragmaがとれんーー。

この問題は、サーバーで SSL (Secure Sockets Layer) が使用され、応答メッセージに次のいずれか、または両方の HTTP ヘッダーが追加されている場合に発生します。

Pragma: no-cache
Cache-control: no-cache,max-age=0,must-revalidate


んー、session_cache_limiter()やっちゃってるから、Pragmaがついちゃうんだよなー。Headerって、get_headersで取れるけど削除ってどない?

	header('Pragma: 1');
	header('Cache-control: private, max-age=60, pre-check=30');
	session_cache_limiter('private_no_expire');

これでいっか。


おー、ダウンロードできた。