web-dev-qa-db-ja.com

Apacheに拡張子なしのファイルのMIMEタイプを認識させる

他の誰かによって他の場所で作成された古いHTMLファイルがいくつかあります。それらの多くは、何らかの理由で、.html拡張子が付いていません。可能であれば変更する必要はありませんが、何らかの理由で、Apacheはファイルタイプを把握するためにMIMEマジックを実行できないようです。 mime_magic modを有効にし、sitesセクションで以下を有効にしました。

    MimeMagicFile /etc/magic

このマシンでDebianLinuxを使用していることに注意してください。

5
supercheetah

メインのconfファイルでDefaultTypeの回避策を試しましたが、うまくいきませんでした。 (私の環境はApacheの内部の完全にハッキングされたバージョンであるため、FileInfoディレクティブまたはDefaultTypeをオーバーライドするものがあり、それを見つけることができません。標準インストールでは機能する可能性があります...)

何DID動作:私が扱っている拡張子のないファイルはすべて1つの既知のディレクトリにあるので、Locationブロックを追加し、ForceTypeを使用しました:

<Location "/directoryname">
ForceType text/plain
</Location>

複数のタイプのファイルを含む必要があるディレクトリでForceTypeを使用することはできません。

6
Ari

ピリオドを含まないすべてのファイルがPHPであると想定します。

      <FilesMatch "^[^\.]+$">
              ForceType application/x-httpd-php
      </FilesMatch>
5
Eugene Kerner

マジックファイルのパスは、Debianでは_/usr/share/file/magic_です。構成ステートメントを次のように変更します

_MimeMagicFile /usr/share/file/magic
_

テキストエディタで_/etc/magic_を開くと、file(1)がそのファイルをlocalマジック定義にのみ使用する必要があることを説明するコメントが表示されます。

1
hayalci

[〜#〜] system [〜#〜]マジックファイルを使用しているようですが、[〜#〜] mime [〜#〜]マジックファイル—Apache構成ディレクティブ「MimeMagicFile」の名前が示すとおり。これを試して:

MimeMagicFile /usr/share/mime/magic

もちろん、それがあなたのシステムにとって正しい道であることを確認してください—私はテストするDebianシステムを持っていませんが、そこにあることを期待しています。上記の場所で見つからない場合は、locate mime/magicを試してください。

0