OS: CentOS Linux release 7.7.1908 (Core)
httpd-2.4.6-90.el7.centos.x86_64
Internet Explorer 11.719.18362.0
.lstという拡張子のテキストファイルをInternet Explorerで表示すると改行が反映されないという通報を受けた。調査を進めたところ、Content-Typeがtext/plainとして扱われていないが為に表示がクシャリとなっている模様である。
Google Chromeでは改行がきっちり表現されていたからInternet Explorer固有の問題であると早合点して、Microsoft Edgeへの移行を進言すべく目論んでいたところ、Microsoft Edgeもやはり表示がクシャリとなってしまったからすっかり計画が狂ってしまった。
拡張子が.txtであれば勝手にtext/plain扱いされるけれども、本件はファイル名の変更が受け入れられない情勢である。唯一、Apacheの設定変更のみが許されているのである。それでこうである。
$ sudo vi /etc/httpd/conf/httpd.conf <FilesMatch "\.lst$"> AddType text/plain lst </FilesMatch>
これで拡張子が.lstのファイルもtext/plainとして扱われてInternet Explorerでも改行が反映された。反映されないときは概ねキャッシュが邪魔をしているからCrtl+F5でスーパーリロードするのが宜しい。
AddTypeディレクティブはFilesMatchディレクティブなどで適用範囲を限定しておく。さもなければuser.lst.guroのような、ファイル名に拡張子文字列を含むものにも影響が及ぶ。従って、ほんとうは SetHandler text/plain
を使うのが良いようである。
けれどもどうしてもSetHandlerの設定が反映されなかったので已む無くFilesMatchディレクティブで取り囲んだAddTypeでお茶を濁したものである。