【linux】mod_layoutを使っています。

LayoutDefaultHandlers Off
LayoutHandler text/html
の二つの使い方がいまいち分かりません。
日本語で詳しく解説されている所をよろしくお願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:kimizu No.1

回答回数726ベストアンサー獲得回数21

ポイント100pt

前回も、ここを紹介しちゃいましたが、ここに書かれていることが全てです。


まず、mod_layoutで普通にHeaderやFooterを指定すると、

ファイル名やファイルの拡張子で指定Headerなどの出力の有無が

決定されます。

「AddOutputFilter LAYOUT html」や

「LayoutIgnoreURI */hoge.cgi」などですね。


しかし、そのまま使用すると、cgiにもheaderの出力を設定した場合、

「画像として返却されるcgiで作成したカウンタ」などで、

画像ファイルの先頭にheaderとして指定したhtmlが付与されてしまい、

画像と認識されなくなり、カウンタが表示できない」などの不具合が発生します。


その際に効いてくるのが今回の設定です。


まず、「LayoutDefaultHandlers Off」ですが、

この行を指定しない場合、該当するハンドラ(ファイル種別)は、以下となります。


server-parsed

text/html

text/plain

perl-script

cgi-script

application/x-http-cgi

application/x-httpd-php


この「ハンドラ」とは、htmlの記載の中には含まれない、httpプロトコル内部の

ファイル種別のことで、apacheでは、Add Typeなどで、

拡張子と関連付けられたりします。

Add Typeでは、「この拡張子は、このファイル種別」という指定をしますので、

サーバ側では、その拡張子のファイルをクライアントに返却する際に、

ファイル種別を伴ってダウンロードさせることができます。

例えば、

「AddType application/vnd.rn-realmedia .rm」という記述で、

「.rmのファイルは、Realmediaのファイルですよ」とか、

「AddType video/x-ms-wmv .wmv」という記述で、

「.wmvはMicrosoftWindowsMediaのファイルですよ」などです。


Add Typeが記述されていない場合、よく分からない拡張子のファイルには、標準ではtext/htmlなどが指定されることになります。


そのハンドラについて、全てのハンドラに対応しないように設定するのが、

「LayoutDefaultHandlers Off」です。


その次に、htmlとして返却されるものに対してのみ、

ヘッダやフッタを出力するような設定を行うため、

「LayoutHandler text/html」を指定します。


要は、

「cgiやphpで出力するhtmlに対してはヘッダ/フッタをつける」

「cgiやphpで作成し、出力するような画像にはヘッダ/フッタを付与しない」

という設定を行うのが、この二行になります。

id:yoshi5231

なるほど とても詳しい説明ありがとうございました。

2006/01/05 16:57:29

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません