事象
ダウンロードというかただのURLリンクなんだけど、IEでWebサーバ上の静的ファイルにaタグ等でリンク(http://[host]/test.eps)を貼ってクリックすると、ダウンロード時のファイル名拡張子が「.eps」から「.ps」になる。
一応環境
- Apache/2.2.15 (Red Hat)
- IE11
- Windows7
HTTP応答ヘッダのContent-Typeは「application/postscript」。
Content-Dispositionの設定は無し。
原因?
どこの設定が反映されているのかと調べてみると、レジストリらしい。
HKEY_CLASSES_ROOT\Mime\Database\Content Type\application/postscript
対処
上記レジストリを「.eps」に変えればサーバ上のファイル名のままダウンロードできるが、自分だけ対応できてもしょうがないのでサーバ側の設定を変える。
以下apacheです。
.htaccessやhttpd.conf内の、設定を反映したい範囲(Directory内等)に以下を記述。
<Files *.eps>
ForceType application/octet-stream
Header set Content-Disposition attachment
</Files>
とりあえずepsだけでよかったのでこうしたが、複数の拡張子に適用したい場合はFilesMatchディレクティブを使う。