ミケネコ研究所 ミケネコ研究所 > htaccess リファレンス > MIME/ハンドラタイプ

MIME/ハンドラタイプ

MIME タイプやハンドラタイプに対する制御を設定します。


解説


サーバは、ファイル名を見ただけではそれが何のファイルなのかを判断することが出来ません。そこで、MIME タイプやハンドラタイプを使って、ファイルの種類を判断します。

MIME タイプ

MIME タイプは、拡張子からファイルの種類を判別できる機能です。そのサーバで有効なデフォルト MIME タイプ一覧は、たいがい mime.types というファイルに保存されています。/usr/local/apache/conf/mime.types を探してください。えっ見つからない?じゃあこちらから mime.types の例をどうぞ

AddType により、MIME タイプの追加・変更(オーバーライド)が可能です。

ハンドラタイプ

ハンドラタイプは、特定のファイルが呼び出されたときの特殊動作を示しています。たとえば、拡張子 .cgi に結び付けられたハンドラタイプ cgi-script は、ファイルが実行ファイルとして働くことを意味します。

あらかじめ組み込まれているハンドラは以下のとおりです。

AddHandler により、拡張子を任意のハンドラに結びつけることができます。

主な利用例


配布用ファイルが DL できない問題を解決するには

訪問者にダウンロードしてもらうためにアップロードしたファイルが、いざアクセスしてみると、いつものダウンロード画面にならずに、ブラウザーに謎の文字がずらずら出てきてしまうことがあります。逆に、HTML ファイルとして設置したのにもかかわらず、ブラウザがダウンロードを始めてしまったということがあります。

これは、拡張子と MIME タイプの関連付けがうまくいっていないときに起こる現象です。これをファイル配布者(ウェブ管理者のあなた)側で解決するには、対象となるファイルの拡張子に対して、適切な MIME タイプを割り当てた .htaccess ファイルを設置しましょう。

下の例は、さまざまな例を載せています。

# .exe 実行ファイルの配布用
AddType application/octet-stream exe

# .lzh アーカイブの配布用
AddType application/octet-stream lzh

# Macintosh .hqx 圧縮ファイルの配布用
AddType application/mac-binhex40 hqx

# Flash コンテンツの公開用
AddType application/x-shockwave-flash swf

# ZIP ファイルの配布用
AddType application/zip zip

通常、このような一般的な拡張子に対しては、サーバのデフォルト設定として登録されていますので、特にユーザが追加しなくても構いません。もし追加しなければならない事態が発生したら、それはあなたのネットワーク管理者は「不適切」であるか、または新しく提案された MIME タイプをアップデートしない「怠惰」な管理者である可能性があります。

不幸にもあなたのサーバ管理者がそうであった場合、上記のような設定を .htaccess に施せばよいでしょう。

サーバ標準の MIME タイプの設定は、サーバ内のどこかのディレクトリに置かれている mime.types ファイルを探して、見てみましょう。


リファレンス


Action

Action type cgi-script
Action image/gif /~user/bin/giflog.cgi

type で指定された MIME タイプまたはハンドラタイプのファイルがリクエストされたときに、cgi-script を実行させます。CGI スクリプトには環境変数 PATH_INFO と PATH_TRANSLATED が送られます。

AddEncoding

AddEncoding mime-enc extension extension...
AddEncoding x-gzip gz

拡張子 extension に対して、エンコード形式 mime-enc を定義します。

拡張子 extension に、ドット (.) を前置する必要はありません。

AddHandler

AddHandler handler-name extension extension...
# 拡張子 .cgi を CGI 実行ファイルであるとします。
AddHandler cgi-script cgi

# 拡張子 .pl を CGI 実行ファイルであるとします。
AddHandler cgi-script pl

拡張子 extension に対して、ハンドラタイプ handler-name を定義します。ハンドラの種類は本ページ冒頭を参照。

拡張子 extension に、ドット (.) を前置する必要はありません。

AddType

AddType mime-type extension extension...
AddType image/png png

拡張子 extension に対して、MIME タイプ mime-type を定義します。

拡張子 extension に、ドット (.) を前置する必要はありません。

DefaultType

DefaultType mime-type
DefaultType text/plain

あるリソースの MIME タイプが未定義である場合、mime-type で指定されたコンテントタイプをクライアントに知らせます。デフォルトでは text/html が選ばれています。

ForceType

ForceType mime-type
ForceType image/gif

ForceType が記述されたコンフィグレーションが有効なすべての範囲のファイルに、mime-type で指定した形式として認識させます。この指定により、ForceType で指定されたファイルには、拡張子をつけなくても認識されます。

Script

Script method cgi-script
Script PUT /~user/put.cgi

ファイルがメソッド method でリクエストされたときに、cgi-script を実行させます。CGI スクリプトには環境変数 PATH_INFO と PATH_TRANSLATED が送られます。

SetHandler

SetHandler handler-name
SetHandler cgi-script

SetHandler が記述されたコンフィグレーションが有効なすべての範囲のファイルに、ハンドラ handler-name で指定したハンドラと結び付けます。この指定により、SetHandler で指定されたファイルには、拡張子をつけなくても認識されます。


ミケネコの htaccess リファレンス http://mikeneko.creator.club.ne.jp/~lab/web/htaccess/