.txtでない拡張子のファイルをtext/plainとして扱いたい

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ディレクティブは無闇にセットすると.lst.guroのような拡張子であっても効果を発揮してしまうから本当は SetHandler text/plain を使うのが良いようである。

けれどもどうしてもSetHandlerの設定が反映されなかったので已む無くFilesMatchディレクティブで取り囲んだAddTypeでお茶を濁したものである。

参考:
AddType ディレクティブ

Similar Posts:

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください