1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"><head><!--
4        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5              This file is generated from xml source: DO NOT EDIT
6        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7      -->
8<title>mod_include - Apache HTTP サーバ</title>
9<link href="/style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10<link href="/style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11<link href="/style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="/style/css/prettify.css" />
12<script src="/style/scripts/prettify.min.js" type="text/javascript">
13</script>
14
15<link href="/images/favicon.ico" rel="shortcut icon" /></head>
16<body>
17<div id="page-header">
18<p class="menu"><a href="/mod/">モジュール</a> | <a href="/mod/directives.html">ディレクティブ</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="/glossary.html">用語</a> | <a href="/sitemap.html">サイトマップ</a></p>
19<p class="apache">Apache HTTP サーバ バージョン 2.4</p>
20<img alt="" src="/images/feather.gif" /></div>
21<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="/images/left.gif" /></a></div>
22<div id="path">
23<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP サーバ</a> &gt; <a href="http://httpd.apache.org/docs/">ドキュメンテーション</a> &gt; <a href="../">バージョン 2.4</a> &gt; <a href="./">モジュール</a></div>
24<div id="page-content">
25<div id="preamble"><h1>Apache モジュール mod_include</h1>
26<div class="toplang">
27<p><span>翻訳済み言語: </span><a href="/en/mod/mod_include.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
28<a href="/fr/mod/mod_include.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
29<a href="/ja/mod/mod_include.html" title="Japanese">&nbsp;ja&nbsp;</a></p>
30</div>
31<div class="outofdate">この日本語訳はすでに古くなっている
32            可能性があります。
33            最近更新された内容を見るには英語版をご覧下さい。
34        </div>
35<table class="module"><tr><th><a href="module-dict.html#Description">説明:</a></th><td>サーバがパースする html ドキュメント (Server Side Includes)</td></tr>
36<tr><th><a href="module-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
37<tr><th><a href="module-dict.html#ModuleIdentifier">モジュール識別子:</a></th><td>include_module</td></tr>
38<tr><th><a href="module-dict.html#SourceFile">ソースファイル:</a></th><td>mod_include.c</td></tr>
39<tr><th><a href="module-dict.html#Compatibility">互換性:</a></th><td>Apache 2.0 から出力フィルタとして実装されました。</td></tr></table>
40<h3>概要</h3>
41
42    <p>このモジュールはファイルがクライアントに送られる前に処理するフィルタを
43    提供します。処理の内容は<dfn>要素</dfn>と呼ばれる特別な形式の SGML コメントにより
44    制御されます。これらの要素は条件分岐や、他のファイルや
45    プログラムの出力の取り込み、環境変数の設定や表示を行なうことが
46    できます。</p>
47</div>
48<div id="quickview"><h3 class="directives">ディレクティブ</h3>
49<ul id="toc">
50<li><img alt="" src="/images/down.gif" /> <a href="#ssiendtag">SSIEndTag</a></li>
51<li><img alt="" src="/images/down.gif" /> <a href="#ssierrormsg">SSIErrorMsg</a></li>
52<li><img alt="" src="/images/down.gif" /> <a href="#ssietag">SSIETag</a></li>
53<li><img alt="" src="/images/down.gif" /> <a href="#ssilastmodified">SSILastModified</a></li>
54<li><img alt="" src="/images/down.gif" /> <a href="#ssilegacyexprparser">SSILegacyExprParser</a></li>
55<li><img alt="" src="/images/down.gif" /> <a href="#ssistarttag">SSIStartTag</a></li>
56<li><img alt="" src="/images/down.gif" /> <a href="#ssitimeformat">SSITimeFormat</a></li>
57<li><img alt="" src="/images/down.gif" /> <a href="#ssiundefinedecho">SSIUndefinedEcho</a></li>
58<li><img alt="" src="/images/down.gif" /> <a href="#xbithack">XBitHack</a></li>
59</ul>
60<h3>トピック</h3>
61<ul id="topics">
62<li><img alt="" src="/images/down.gif" /> <a href="#enabling">Server-Side Includes を有効にする</a></li>
63<li><img alt="" src="/images/down.gif" /> <a href="#pathinfo">サーバサイドインクルード (SSI) での PATH_INFO</a></li>
64<li><img alt="" src="/images/down.gif" /> <a href="#elements">基本要素</a></li>
65<li><img alt="" src="/images/down.gif" /> <a href="#includevars">Include 変数</a></li>
66<li><img alt="" src="/images/down.gif" /> <a href="#substitution">変数置換</a></li>
67<li><img alt="" src="/images/down.gif" /> <a href="#flowctrl">フロー制御要素</a></li>
68</ul><h3>参照</h3>
69<ul class="seealso">
70<li><code class="directive"><a href="/mod/core.html#options">Options</a></code></li>
71<li><code class="directive"><a href="/mod/core.html#acceptpathinfo">AcceptPathInfo</a></code></li>
72<li><a href="/filter.html">フィルタ</a></li>
73<li><a href="/howto/ssi.html">SSI チュートリアル</a></li>
74</ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
75<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
76<div class="section">
77<h2><a name="enabling" id="enabling">Server-Side Includes を有効にする</a></h2>
78    
79
80    <p>Server Side Includes は <code>INCLUDES</code>
81    <a href="/filter.html">フィルタ</a> により実装されています。
82    Server-side include のディレクティブを含むドキュメントの拡張子が
83    .shtml の場合、以下のディレクティブでは Apache がそれらを
84    パースして、その結果できるドキュメントに <code>text/html</code> の
85    MIME タイプを割り当てます:</p>
86
87    <div class="example"><p><code>
88      AddType text/html .shtml<br />
89      AddOutputFilter INCLUDES .shtml
90    </code></p></div>
91
92    <p>以下のディレクティブは shtml ファイルのあるディレクトリで指定されている
93    必要があります (通常は <code class="directive"><a href="/mod/core.html#directory">&lt;Directory&gt;</a></code> セクションで指定しますが、
94    <code class="directive"><a href="/mod/core.html#allowoverride">AllowOverride</a></code> <code>Options</code>
95    が設定されていると、<code>.htaccess</code> ファイルに書くこともできます):</p>
96
97    <div class="example"><p><code>
98      Options +Includes
99    </code></p></div>
100
101    <p>互換性を保つために、<code>server-parsed</code>
102    <a href="/handler.html">ハンドラ</a> も INCLUDES フィルタを
103    有効にします。MIME タイプ <code>text/x-server-parsed-html</code> や
104    <code>text/x-server-parsed-html3</code> のドキュメントに対しても
105    Apache は INCLUDES フィルタを有効にします (出力されるものは
106    MIME タイプ <code>text/html</code> になります)。</p>
107
108    <p>詳しい情報は <a href="/howto/ssi.html">Tutorial on Server Side Includes</a>.</p>
109</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
110<div class="section">
111<h2><a name="pathinfo" id="pathinfo">サーバサイドインクルード (SSI) での PATH_INFO</a></h2>
112    
113
114    <p>SSI で処理されるファイルはデフォルトでは <code>PATH_INFO</code>
115    (後続のパス名情報)
116    付きのリクエストを受け入れなくなりました。<code class="directive"><a href="/mod/core.html#acceptpathinfo">AcceptPathInfo</a></code> ディレクティブで
117    <code>PATH_INFO</code> 付きのリクエストを受け入れるようにサーバを
118    設定できます。</p>
119</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
120<div class="section">
121<h2><a name="elements" id="elements">基本要素</a></h2>
122    <p>ドキュメントは、SGML のコメントとして特別なコマンドが埋め込まれた
123    HTML ドキュメントとしてパースされます。コマンドの構文は次のように
124    なっています:</p>
125
126    <div class="example"><p><code>
127      &lt;!--#<var>element</var> <var>attribute</var>=<var>value</var>
128      <var>attribute</var>=<var>value</var> ... --&gt;
129    </code></p></div>
130
131    <p>値 <span class="transnote">(<em>訳注:</em> value)</span> は二重引用符で囲むのが一般的ですが、
132    シングルクオート (') とバッククオート (`) も使用できます。
133    多くのコマンドは属性-値 <span class="transnote">(<em>訳注:</em> attribute-value)</span> の組を一つだけ指定できます。
134    コメントの終わり (<code>--&gt;</code>)
135    の前には、SSI の句の一部だと解釈されないようにするために空白を
136    入れてください。最初の <code>&lt;!--#</code> はまとめて<em>一つ</em>の
137    句で、空白をふくんではいけないこと注意してください。</p>
138
139    <p>要素 <span class="transnote">(<em>訳注:</em> element)</span> を以下の表に示します。</p>
140
141    <table class="bordered">
142    <tr><th>要素</th><th>説明</th></tr>
143    <tr><td><code><a href="#element.config">config</a></code></td>
144        <td>configure output formats</td></tr>
145    <tr><td><code><a href="#element.echo">echo</a></code></td>
146        <td>print variables</td></tr>
147    <tr><td><code><a href="#element.exec">exec</a></code></td>
148        <td>execute external programs</td></tr>
149    <tr><td><code><a href="#element.fsize">fsize</a></code></td>
150        <td>print size of a file</td></tr>
151    <tr><td><code><a href="#element.flastmod">flastmod</a></code></td>
152        <td>print last modification time of a file</td></tr>
153    <tr><td><code><a href="#element.include">include</a></code></td>
154        <td>include a file</td></tr>
155    <tr><td><code><a href="#element.printenv">printenv</a></code></td>
156        <td>print all available variables</td></tr>
157    <tr><td><code><a href="#element.set">set</a></code></td>
158        <td>set a value of a variable</td></tr>
159    </table>
160
161    <p>SSI 要素は <code class="module"><a href="/mod/mod_include.html">mod_include</a></code> 以外のモジュールで
162    定義されることもあります。実際、
163    <code><a href="#element.exec">exec</a></code> 要素は
164    <code class="module"><a href="/mod/mod_cgi.html">mod_cgi</a></code> で提供されていて、このモジュールが
165    ロードされる場合にのみ利用可能となります。</p>
166
167    <h3><a name="element.config" id="element.config">config 要素</a></h3>
168      <p>次のコマンドは解析の様々な側面を制御します。属性は次の通りです。</p>
169
170      <dl>
171      <dt><code>echomsg</code> (<em>Apache 2.1 以降</em>)</dt>
172      <dd>指定される値は、<code><a href="#element.echo">echo</a></code>
173      要素が未定義の変数をエコーしようとした際に、
174      クライアントに送られるメッセージになります。
175      <code class="directive"><a href="#ssiundefinedecho">SSIUndefinedEcho</a></code> 
176      ディレクティブを上書きします。</dd>
177
178      <dt><code>errmsg</code></dt>
179      <dd>この値が、ドキュメントの解析中にエラーが発生した時に
180      クライアントに送信されるメッセージになります。
181      <code class="directive"><a href="#ssierrormsg">SSIErrorMsg</a></code>
182      ディレクティブを上書きします。</dd>
183
184      <dt><code>sizefmt</code></dt>
185      <dd>この値は、ファイルのサイズを表示する際に使用する
186      フォーマットを設定します。値は バイトカウントの
187      <code>bytes</code>か、Kb や Mb を優先的に使用する
188      <code>abbrec</code> (例えば 1024 バイトは "1K" と表示されます)
189      です。</dd>
190
191      <dt><code>timefmt</code></dt>
192      <dd>この値は <code>strftime(3)</code> ライブラリルーチンが
193      日時をプリントする際に用いられます。</dd>
194      </dl>
195     
196
197    <h3><a name="element.echo" id="element.echo">echo 要素</a></h3>
198      <p>このコマンドは以下で定義されている <a href="#includevars">include
199      変数</a> を表示します。変数が設定されていない場合は <code class="directive"><a href="#ssiundefinedecho">SSIUndefinedEcho</a></code> ディレクティブで
200      決定される結果となります。日付はその時点での <code>timefmt</code> に従って
201      表示されます。属性は次の通りです。</p>
202
203      <dl>
204      <dt><code>var</code></dt>
205      <dd>値は表示する変数の名前です。</dd>
206
207      <dt><code>encoding</code></dt>
208      <dd><p>変数を出力する前に、変数中の特別文字をどのようにエンコードするかを
209      指定します。<code>none</code> に設定されていると、エンコードは行なわれません。
210      <code>url</code> に設定されていると、URL エンコード (%-エンコードとも
211      呼ばれています。これはリンク等の URL の使用に適切です) が
212      行なわれます。<code>echo</code> 要素の開始時は、デフォルトは
213      <code>entity</code> に設定されています。これはエンティティエンコード
214      (段落やテキストなどのブロックレベルの HTML エレメントのコンテキストに
215      適しています) を行ないます。これは <code>encoding</code> 属性
216      を加えることで変更できます。変更は次の <code>encoding</code> 属性か、
217      要素の終了まで効力を持ちます。</p>
218
219      <p><code>encoding</code> 属性はエンコードの変更をしたい <code>var</code> 
220      の<em>前に</em> ある必要があることに注意してください。
221      また、ISO-8859-1 エンコーディングで
222      定義されている特別な文字だけがエンコードされます。
223      別の文字のエンコーディングの場合は、このエンコーディングは
224      望みの結果にならないかもしれません。</p>
225
226      <div class="warning">
227        クロスサイトスクリプティングの問題を避けるために、
228        <em>常に</em>ユーザからのデータをエンコードすべきです。
229      </div>
230      </dd>
231      </dl>
232     
233
234    <h3><a name="element.exec" id="element.exec">exec 要素</a></h3>
235      <p><code>exec</code> コマンドは指定されたシェルコマンドや CGI スクリプトを
236      実行します。<code class="module"><a href="/mod/mod_cgi.html">mod_cgi</a></code> がサーバに組み込まれているいなければ
237      なりません。<code class="directive"><a href="/mod/core.html#option">Option</a></code> 
238      <code>IncludesNOEXEC</code> はこのコマンドを無効にします。
239      使用可能な属性は次の通りです。</p>
240
241      <dl>
242      <dt><code>cgi</code></dt>
243      <dd><p>値は (%-エンコードされた) URL を指定します。パスが
244      スラッシュ (/) で始まらないときは、ドキュメントからの
245      相対パスとして扱われます。このパスで参照されているドキュメントは
246      サーバが CGI スクリプトとして扱っていなくても CGI スクリプトとして
247      起動されます。ただし、スクリプトのあるディレクトリでは
248      (<code class="directive"><a href="/mod/mod_alias.html#scriptalias">ScriptAlias</a></code>
249      や <code class="directive"><a href="/mod/core.html#option">Option</a></code> <code>ExecCGI</code>
250      によって) CGI スクリプトの使用が許可されている必要があります。</p>
251
252      <p>CGI スクリプトには、クライアントからの元々のリクエストの
253      <code>PATH_INFO</code> とクエリー文字列 (<code>QUERY_STRING</code>) が渡されます。
254      これらは URL パスとして特定<em>できない</em>ものです。
255      スクリプトは標準 <a href="mod_cgi.html">CGI</a> 環境に加えて、include 変数を
256      使用することができます。</p>
257
258      <div class="example"><h3>例</h3><p><code>
259        &lt;!--#exec cgi="/cgi-bin/example.cgi" --&gt;
260      </code></p></div>
261
262      <p>スクリプトが、出力の代わりに <code>Location:</code> ヘッダを返すと、
263      HTML のアンカー <span class="transnote">(<em>訳注:</em> リンク)</span> に変換されます。</p>
264
265      <p><code>exec cgi</code> よりも、
266      <code><a href="#includevirtual">include virtual</a></code>
267      の方を使うようにしてください。特に、CGI への追加の引数を
268      クエリー文字列を使って渡すことは <code>exec cgi</code> は
269      できませんが、<code>include virtual</code> は以下のようにして
270      可能です。</p>
271
272      <div class="example"><p><code>
273        &lt;!--#include virtual="/cgi-bin/example.cgi?argument=value" --&gt;
274      </code></p></div>
275      </dd>
276
277      <dt><code>cmd</code></dt>
278      <dd><p>サーバは指定された文字列を <code>/bin/sh</code> を使って
279      実行します。コマンドは通常の CGI 変数に加えて <a href="#includevars">include 変数</a>も使うことができます。</p>
280
281      <p>ほとんどの場合、<code><a href="#includevirtual">#include 
282      virtual</a></code> を使う方が <code>#exec cgi</code> や <code>#exec
283      cmd</code> を使うよりも良いです。前者 (<code>#include virtual</code>)
284      は標準の Apache のサブリクエスト機構を使ってファイルやスクリプトの
285      出力を取り込みます。
286      こちらの方がよくテストされメンテナンスされた方法です。</p>
287
288      <p>さらに、Win32 のようないくつかのプラットフォームや、<a href="/suexec.html">suexec</a> を使っている unix では、
289      <code>exec</code> ディレクティブのコマンドに
290      引数を渡したり、コマンドに空白を入れることはできません。
291      ですから、以下のものは unix の suexec でない設定では動作しますが、
292      Win32 や suexec を使っている unix では期待した結果にはなりません:</p>
293
294      <div class="example"><p><code>
295        &lt;!--#exec cmd="perl /path/to/perlscript arg1 arg2" --&gt;
296      </code></p></div>
297      </dd>
298      </dl>
299     
300
301    <h3><a name="element.fsize" id="element.fsize">fsize 要素</a></h3>
302      <p>このコマンドは指定されたファイルの大きさを <code>sizefmt</code> の
303      書式指定に基づいて出力します。属性は次の通りです。</p>
304
305      <dl>
306      <dt><code>file</code></dt>
307      <dd>値は解析されているドキュメントの存在するディレクトリからの
308      相対パスです。</dd>
309
310      <dt><code>virtual</code></dt>
311      <dd> 値は (% エンコードされた) URL-path です。スラッシュ (/) で
312      始まらないときはドキュメントからの相対パスとして扱われます。
313      CGI の出力のサイズはプリント<em>されません</em>。CGI
314      スクリプト自体のサイズがプリントされることに注意してください。</dd>
315      </dl>
316     
317
318    <h3><a name="element.flastmod" id="element.flastmod">flastmod 要素</a></h3>
319      <p>このコマンドは指定されたファイルの最終修正時刻を
320      <code>timefmt</code> 書式指定に従って表示します。
321      指定可能な属性は <code>fsize</code> コマンドと同じです。</p>
322     
323
324    <h3><a name="element.include" id="element.include">include 要素</a></h3>
325      <p>このコマンドは別の文書やファイルのテキストを解析しているファイルに
326      挿入します。挿入されるファイルはアクセス制御の管理下にあります。
327      解析しているファイルの存在するディレクトリに
328      <a href="core.html#options">Option</a> <code>IncludesNOEXEC</code>
329      が設定されている場合、text <a class="glossarylink" href="/glossary.html#mime-type" title="用語集を参照">MIME タイプ</a>
330      (<code>text/plain</code>, <code>text/html</code> 等) 
331      のドキュメントのみインクルードが行なわれます。
332      その他の場合は、クエリー文字列も含め、コマンドで指定された
333      完全な URL を使って普通に CGI スクリプトが呼び出されます。</p>
334
335      <p>属性が文書の位置を指定します。include コマンドに与えられたそれぞれの
336      属性に対して挿入作業が行なわれます。有効な属性は次の通りです。</p>
337
338      <dl>
339      <dt><code>file</code></dt>
340      <dd>値は解析されているドキュメントの存在するディレクトリからの
341      相対パスです。
342      <code>../</code> を含んでいたり、絶対パスを指定したりはできません。
343      ですから、ドキュメントルートの外にあるファイルや、ディレクトリ構造で
344      上位にあるファイルを挿入することはできません。
345      常にこの属性よりは、<code>virtual</code> 属性を使うようにしてください。
346      </dd>
347
348      <dt><code><a id="includevirtual" name="includevirtual">virtual</a></code></dt>
349      <dd><p>値は解析されているドキュメントからの (% エンコードされた) URL
350      です。URL にはスキームやホスト名を含めることはできません。パスと、
351      もしあればクエリー文字列を指定できるだけです。スラッシュ (/) から
352      始まらない場合は、ドキュメントからの相対パスとして扱われます。</p>
353
354      <p>URL は属性から作られ、その URL をクライアントがアクセスしたときに
355      出力される内容が解析後の出力に含められます。ですから、挿入される
356      ファイルは入れ子構造にすることができます。</p>
357
358      <p>指定された URL が CGI プログラムであった場合は、
359      プログラムが実行され、その出力が解析しているファイル中の
360      ディレクティブがあった位置に挿入されます。CGI の url に
361      クエリー URL を入れることもできます。</p>
362
363      <div class="example"><p><code>
364        &lt;!--#include virtual="/cgi-bin/example.cgi?argument=value" --&gt;
365      </code></p></div>
366
367      <p>HTML ドキュメントに CGI プログラムの出力を含める方法としては、
368      <code>include virtual</code> の方が <code>exec cgi</code> よりも
369      好ましい方法です。</p>
370
371      <p><code class="directive"><a href="/mod/mod_request.html#keptbodysize">KeptBodySize</a></code>
372      ディレクティブが設定されていて、かつ、この対象ファイルが
373      <span class="transnote">(<em>訳注:</em> POST リクエストを)</span>受け入れできるなら、
374      POST リクエストを受け取ってサブリクエストを発行する際にも
375      POST リクエストが渡されます。
376      このディレクティブが設定されていない場合は、
377      サブリクエストは GET リクエストとして処理されます。</p>
378
379      </dd>
380      </dl>
381     
382
383    <h3><a name="element.printenv" id="element.printenv">printenv 要素</a></h3>
384      <p>これは、存在するすべての変数とその値を表示します。Apache 1.3.12 から、
385      特別な文字は出力される前にエンティティエンコード (詳細は <a href="#element.echo"><code>echo</code></a> 要素を参照)
386      されるようになりました。属性はありません。</p>
387
388      <div class="example"><h3>例</h3><p><code>
389        &lt;!--#printenv --&gt;
390      </code></p></div>
391     
392
393    <h3><a name="element.set" id="element.set">set 要素</a></h3>
394      <p>これは変数の値を設定します。属性は次の通りです。</p>
395
396      <dl>
397      <dt><code>var</code></dt>
398      <dd>設定する変数の名前。</dd>
399
400      <dt><code>value</code></dt>      
401      <dd>変数に設定する値。</dd>
402      </dl>
403
404      <div class="example"><h3>例</h3><p><code>
405        &lt;!--#set var="category" value="help" --&gt;
406      </code></p></div>
407     
408</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
409<div class="section">
410<h2><a name="includevars" id="includevars">Include 変数</a></h2>
411    
412
413    <p>標準 CGI 環境の変数に加えて、<code>echo</code> コマンドや、
414    <code>if</code> や <code>elif</code>, それにドキュメントから呼び出される
415    すべてのプログラムから使用できる変数があります。</p>
416
417    <dl>
418      <dt><code>DATE_GMT</code></dt>
419      <dd>グリニッジ標準時による現在時刻。</dd>
420
421      <dt><code>DATE_LOCAL</code></dt>
422      <dd>ローカルの標準時による現在時刻。</dd>
423
424      <dt><code>DOCUMENT_NAME</code></dt>
425      <dd>ユーザがリクエストした (ディレクトリを除いた) ファイル名。</dd>
426
427      <dt><code>DOCUMENT_URI</code></dt>
428      <dd>ユーザがリクエストした (% エンコードされた) URL-path。
429      挿入ファイルが入れ子になっている場合は、解析されている
430     ドキュメントの URL では<em>ない</em>ことに注意してください。</dd>
431
432      <dt><code>LAST_MODIFIED</code></dt>
433      <dd>ユーザがリクエストしたドキュメントの最終修正時刻。</dd>
434
435      <dt><code>QUERY_STRING_UNESCAPED</code></dt>
436      <dd>クエリー文字列がある場合、この変数には (%-デコードされた)
437      クエリー文字列が代入されていて、shell で使用できるように
438      <em>エスケープ</em>されています (<code>&amp;</code>
439      といった特殊文字にはバックスラッシュが直前に置かれます)。</dd>
440    </dl>
441</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
442<div class="section">
443<h2><a name="substitution" id="substitution">変数置換</a></h2>
444
445    <p>変数置換はたいていの場合 SSI ディレクティブの引数として妥当な場所にある
446    引用符で囲まれた文字列中で行なわれます。これに該当するものには、
447    <code>config</code>,
448    <code>exec</code>, <code>flastmod</code>, <code>fsize</code>,
449    <code>include</code>, <code>echo</code>, <code>set</code> の
450    各ディレクティブと、条件分岐用のオペレータへの引数があります。
451    ドル記号はバックスラッシュを使うことで使うことができます:</p>
452
453    <div class="example"><p><code>
454      &lt;!--#if expr="$a = \$test" --&gt;
455    </code></p></div>
456
457    <p>変数名としてみなされる文字列の中で変数への参照を置換する必要があるときは、
458    シェルでの変数置換のように、中括弧で括ることで区別することができます:</p>
459
460    <div class="example"><p><code>
461      &lt;!--#set var="Zed" value="${REMOTE_HOST}_${REQUEST_METHOD}" --&gt;
462    </code></p></div>
463
464    <p>この例では、<code>REMOTE_HOST</code> が
465    "<code>X</code>" で <code>REQUEST_METHOD</code> が
466    "<code>Y</code>" のときに変数 <code>Zed</code> を "<code>X_Y</code>"
467    に設定します。</p>
468
469    <p>以下の例では、<code>DOCUMENT_URI</code> が <code>/foo/file.html</code>
470    のときに "in foo" を、<code>/bar/file.html</code> のときに "in bar" を、
471    どちらでもないときには "in neither" を表示します。</p>
472
473    <div class="example"><p><code>
474      &lt;!--#if expr='"$DOCUMENT_URI" = "/foo/file.html"' --&gt;<br />
475      <span class="indent">
476        in foo<br />
477      </span>
478      &lt;!--#elif expr='"$DOCUMENT_URI" = "/bar/file.html"' --&gt;<br />
479      <span class="indent">
480        in bar<br />
481      </span>
482      &lt;!--#else --&gt;<br />
483      <span class="indent">
484        in neither<br />
485      </span>
486      &lt;!--#endif --&gt;
487    </code></p></div>
488</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
489<div class="section">
490<h2><a name="flowctrl" id="flowctrl">フロー制御要素</a></h2>
491    
492
493    <p>基本的なフローコントロール要素は次の通りです。</p>
494
495    <div class="example"><p><code>
496      &lt;!--#if expr="<var>test_condition</var>" --&gt;<br />
497      &lt;!--#elif expr="<var>test_condition</var>" --&gt;<br />
498      &lt;!--#else --&gt;<br />
499      &lt;!--#endif --&gt;
500    </code></p></div>
501
502    <p><code>if</code> 要素はプログラミング言語の
503    if 文と同じように動作します。条件が評価され、結果が真であれば次の
504    <code>elif</code> か <code>else</code> か <code>endif</code>
505    要素までの文字列が出力に挿入されます。</p>
506
507    <p><code>elif</code> や <code>else</code> 文は <var>test_condition</var> 
508    が偽のときにテキストを出力に挿入するために使われます。
509    これらの要素はあってもなくても構いません。</p>
510
511    <p><code>endif</code> 要素は <code>if</code>
512    要素を終了させます。この要素は必須です。</p>
513
514    <p><var>test_condition</var> は以下のどれかです:</p>
515
516    <dl>
517      <dt><code><var>string</var></code></dt>
518      <dd><var>string</var> が空でない場合に真です</dd>
519
520      <dt><code><var>-A string</var></code></dt>
521      <dd><p><span class="transnote">(<em>訳注:</em> httpd の)</span>設定を検査して、
522      文字列で指定した URL にアクセスできる場合 true で、
523      そうでなければ false になります。
524      <code class="directive">SSIAccessEnable</code> が有効のときにのみ
525      この検査は行われます。
526      承認されていないユーザからは隠しておきたい URL についての情報、
527      たとえば URL へのリンクなどがある場合に、便利です。
528      検査では URL へアクセスできるかの権限のみが行われ、URL
529      が存在するかどうかについては検査されないことに注意してください。</p>
530
531      <div class="example"><h3>Example</h3><p><code>
532        &lt;!--#if expr="-A /private" --&gt;<br />
533        <span class="indent">
534          Click &lt;a href="/private"&gt;here&lt;/a&gt; to access private
535          information.<br />
536        </span>
537        &lt;!--#endif --&gt;
538      </code></p></div>
539      </dd>
540
541      <dt><code><var>string1</var> = <var>string2</var><br />
542      <var>string1</var> == <var>string2</var><br />
543      <var>string1</var> != <var>string2</var></code></dt>
544
545      <dd><p><var>string1</var> と <var>string2</var> を比較します。
546      <var>string2</var> が <code>/<var>string</var>/</code>
547      という形式であれば、正規表現として比較されます。正規表現は
548      <a href="http://www.pcre.org">PCRE</a> エンジンで実装されていて、
549      <a href="http://www.perl.com">perl 5</a> と同じ構文を使用します。
550      <code>==</code> は単に <code>=</code> の別名で、まったく同じ動作を
551      します。</p>
552
553      <p>正のマッチング (<code>=</code> または <code>==</code>) の場合は、
554      正規表現でグループ分けされたパーツをキャプチャすることができます。
555      キャプチャされた部分は特殊変数 <code>$1</code> .. <code>$9</code>
556      に格納されます。</p>
557
558      <div class="example"><h3>例</h3><p><code>
559        &lt;!--#if expr="$QUERY_STRING = /^sid=([a-zA-Z0-9]+)/" --&gt;<br />
560        <span class="indent">
561          &lt;!--#set var="session" value="$1" --&gt;<br />
562        </span>
563        &lt;!--#endif --&gt;
564      </code></p></div>
565      </dd>
566
567      <dt><code><var>string1</var> &lt; <var>string2</var><br />
568       <var>string1</var> &lt;= <var>string2</var><br />
569       <var>string1</var> &gt; <var>string2</var><br />
570       <var>string1</var> &gt;= <var>string2</var></code></dt>
571
572      <dd><var>string1</var> と <var>string2</var> を比較します。
573      <em>文字列として</em>比較される (<code>strcmp(3)</code> を使用)
574      ことに注意してください。ですから、文字列 "100" は "20" 
575      よりも小さいことになります。</dd>
576
577      <dt><code>( <var>test_condition</var> )</code></dt>
578      <dd><var>test_condition</var> が真のとき、真</dd>
579
580      <dt><code>! <var>test_condition</var></code></dt>
581      <dd><var>test_condition</var> が偽のとき、真</dd>
582
583      <dt><code><var>test_condition1</var> &amp;&amp;
584        <var>test_condition2</var></code></dt>
585      <dd><var>test_condition1</var> かつ
586      <var>test_condition2</var> が真のとき、真</dd>
587
588      <dt><code><var>test_condition1</var> ||
589        <var>test_condition2</var></code></dt>
590      <dd><var>test_condition1</var> または
591      <var>test_condition2</var> が真のとき、真</dd>
592    </dl>
593
594    <p>"<em>=</em>" と "<em>!=</em>" の方が "<em>&amp;&amp;</em>" より
595    きつく束縛します。"<em>!</em>" の束縛が一番きつくなっています。
596    ですから以下の二つは等価です:</p>
597
598    <div class="example"><p><code>
599      &lt;!--#if expr="$a = test1 &amp;&amp; $b = test2" --&gt;<br />
600      &lt;!--#if expr="($a = test1) &amp;&amp; ($b = test2)" --&gt;
601    </code></p></div>
602
603    <p>真偽値オペレータ <code>&amp;&amp;</code> と <code>||</code>
604    は同じ優先度です。
605    これらのオペレータで一方により強い優先度をつけたい場合には、
606    括弧を使う必要があります。</p>
607
608    <p>変数やオペレータとして認識されないものはすべて文字列として
609    扱われます。文字列は引用符で囲むこともできます: <code>'string'</code>
610    のように。引用符で囲まれていない文字列には空白 (スペースとタブ)
611    を含めることはできません。それらは変数などの句を分離するために
612    使われているからです。複数の文字列が続いているときは、
613    空白を間に入れて一つにくっつけられます。ですから、</p>
614
615    <div class="example"><p><code><var>string1</var>&nbsp;&nbsp;&nbsp;&nbsp;<var>string2</var></code> は <code><var>string1</var>&nbsp;<var>string2</var></code> になります。<br />
616      <br />
617      また、<br />
618      <br />
619      <code>'<var>string1</var>&nbsp;&nbsp;&nbsp;&nbsp;<var>string2</var>'</code> は <code><var>string1</var>&nbsp;&nbsp;&nbsp;&nbsp;<var>string2</var></code>
620      になります。</p></div>
621
622    <div class="note"><h3>真偽値表現の最適化</h3>
623      <p>式がもっと複雑になり、処理の速度低下が顕著になった場合は、
624      評価ルールに従って最適化してみると良いでしょう。</p>
625      <ul>
626      <li>評価は左から右に向かって行われます。</li>
627      <li>二値真偽値オペレータ (<code>&amp;&amp;</code> と <code>||</code>)
628          は、出来る限り短絡評価されます。つまり結果として上記のルールは、
629          <code class="module"><a href="/mod/mod_include.html">mod_include</a></code> が左の評価式を評価します。
630          左側で結果を十分決定できる場合は、評価はそこで停止します。
631          そうでない場合は右側を評価して、左と右の両方から結果を計算します。</li>
632      <li>短絡評価は評価の対象に正規表現が含まれる場合、オフになります。
633          後方参照する変数 (<code>$1</code> .. <code>$9</code>) 
634          を埋めるために、実際に評価する必要があるからです。</li>
635      </ul>
636      <p>特定の式がどのように扱われるかを知りたい場合は、
637      <code>-DDEBUG_INCLUDE</code> コンパイラオプションを付けて
638      <code class="module"><a href="/mod/mod_include.html">mod_include</a></code> をリコンパイルすると良いでしょう。
639      これにより、全てのパースされた式に対して、字句解析情報、
640      パースツリーと、
641      それがどのようにクライアントに送られた出力まで評価されたかを
642      挿入します。</p>
643    </div>
644 
645    <div class="note"><h3>正規表現内での / のエスケープ</h3>
646    <p>正規表現内でデリミタとして扱いたくない / があれば、それらは全て
647    エスケープしなければなりません。
648    正規表現の意味がどうであろうとエスケープは必要です。</p>
649    </div>
650</div>
651<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
652<div class="directive-section"><h2><a name="SSIEndTag" id="SSIEndTag">SSIEndTag</a> <a name="ssiendtag" id="ssiendtag">ディレクティブ</a></h2>
653<table class="directive">
654<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>include 要素を終了させる文字列</td></tr>
655<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>SSIEndTag <var>tag</var></code></td></tr>
656<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>SSIEndTag "--&gt;"</code></td></tr>
657<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
658<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
659<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_include</td></tr>
660<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>2.0.30 以降で利用可能</td></tr>
661</table>
662    <p>このディレクティブは <code class="module"><a href="/mod/mod_include.html">mod_include</a></code> が探す、
663    include 要素の終了を示す文字列を変更します。</p>
664
665    <div class="example"><h3>例</h3><p><code>
666      SSIEndTag "%&gt;"
667    </code></p></div>
668
669
670<h3>参照</h3>
671<ul>
672<li><code class="directive"><a href="#ssistarttag">SSIStartTag</a></code></li>
673</ul>
674</div>
675<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
676<div class="directive-section"><h2><a name="SSIErrorMsg" id="SSIErrorMsg">SSIErrorMsg</a> <a name="ssierrormsg" id="ssierrormsg">ディレクティブ</a></h2>
677<table class="directive">
678<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>SSI のエラーがあったときに表示されるエラーメッセージ</td></tr>
679<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>SSIErrorMsg <var>message</var></code></td></tr>
680<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>SSIErrorMsg "[an error occurred while processing this
681directive]"</code></td></tr>
682<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr>
683<tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>All</td></tr>
684<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
685<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_include</td></tr>
686<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>バージョン 2.0.30 以降で使用可能</td></tr>
687</table>
688    <p><code class="directive">SSIErrorMsg</code> ディレクティブは <code class="module"><a href="/mod/mod_include.html">mod_include</a></code>
689    がエラーが起こったときに表示するメッセージを変更します。プロダクションサーバでは
690    メッセージがユーザに表示されないようにするために
691    デフォルトエラーメッセージを <code>"&lt;!-- Error --&gt;"</code>
692    に変えるというようなことを考えるかもしれません。</p>
693
694    <p>このディレクティブは <code>&lt;!--#config
695    errmsg=<var>message</var> --&gt;</code> 要素と同じ効果になります。</p>
696
697    <div class="example"><h3>例</h3><p><code>
698      SSIErrorMsg "&lt;!-- Error --&gt;"
699    </code></p></div>
700
701</div>
702<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
703<div class="directive-section"><h2><a name="SSIETag" id="SSIETag">SSIETag</a> <a name="ssietag" id="ssietag">ディレクティブ</a></h2>
704<table class="directive">
705<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>Controls whether ETags are generated by the server.</td></tr>
706<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>SSIETag on|off</code></td></tr>
707<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>SSIETag off</code></td></tr>
708<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>ディレクトリ, .htaccess</td></tr>
709<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
710<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_include</td></tr>
711<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>Available in version 2.2.15 and later.</td></tr>
712</table><p>このディレクティブの解説文書は
713            まだ翻訳されていません。英語版をご覧ください。
714            </p></div>
715<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
716<div class="directive-section"><h2><a name="SSILastModified" id="SSILastModified">SSILastModified</a> <a name="ssilastmodified" id="ssilastmodified">ディレクティブ</a></h2>
717<table class="directive">
718<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>Controls whether <code>Last-Modified</code> headers are generated by the
719server.</td></tr>
720<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>SSILastModified on|off</code></td></tr>
721<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>SSILastModified off</code></td></tr>
722<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>ディレクトリ, .htaccess</td></tr>
723<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
724<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_include</td></tr>
725<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>Available in version 2.2.15 and later.</td></tr>
726</table><p>このディレクティブの解説文書は
727            まだ翻訳されていません。英語版をご覧ください。
728            </p></div>
729<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
730<div class="directive-section"><h2><a name="SSILegacyExprParser" id="SSILegacyExprParser">SSILegacyExprParser</a> <a name="ssilegacyexprparser" id="ssilegacyexprparser">ディレクティブ</a></h2>
731<table class="directive">
732<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>Enable compatibility mode for conditional expressions.</td></tr>
733<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>SSILegacyExprParser on|off</code></td></tr>
734<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>SSILegacyExprParser off</code></td></tr>
735<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>ディレクトリ, .htaccess</td></tr>
736<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
737<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_include</td></tr>
738<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>Available in version 2.3.13 and later.</td></tr>
739</table><p>このディレクティブの解説文書は
740            まだ翻訳されていません。英語版をご覧ください。
741            </p></div>
742<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
743<div class="directive-section"><h2><a name="SSIStartTag" id="SSIStartTag">SSIStartTag</a> <a name="ssistarttag" id="ssistarttag">ディレクティブ</a></h2>
744<table class="directive">
745<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>include 要素を開始する文字列</td></tr>
746<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>SSIStartTag <var>tag</var></code></td></tr>
747<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>SSIStartTag "&lt;!--#"</code></td></tr>
748<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
749<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
750<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_include</td></tr>
751<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>バージョン 2.0.30 以降で使用可能</td></tr>
752</table>
753
754    <p>このディレクティブは <code class="module"><a href="/mod/mod_include.html">mod_include</a></code> が探す、include
755    要素の開始を示す文字列を変更します。</p>
756
757    <p>二つのサーバで (もしかすると別々の段階で) ファイルの出力を解析していて、
758    それぞれに違うコマンドを処理させたい、
759    というようなときにこのオプションを使います。</p>
760
761    <div class="example"><h3>例</h3><p><code>
762      SSIStartTag "&lt;%"<br />
763      SSIEndTag   "%&gt;"
764    </code></p></div>
765
766    <p>上の例のように対応する
767    <code class="directive"><a href="#ssiendtag">SSIEndTag</a></code> を併せて使うと、
768    下に示す例のように SSI ディレクティブを使えます:</p>
769
770    <div class="example"><h3>違う開始と終了のタグを使った SSI ディレクティブ</h3><p><code>
771      &lt;%printenv %&gt;
772    </code></p></div>
773
774<h3>参照</h3>
775<ul>
776<li><code class="directive"><a href="#ssiendtag">SSIEndTag</a></code></li>
777</ul>
778</div>
779<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
780<div class="directive-section"><h2><a name="SSITimeFormat" id="SSITimeFormat">SSITimeFormat</a> <a name="ssitimeformat" id="ssitimeformat">ディレクティブ</a></h2>
781<table class="directive">
782<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>日付けを現す文字列の書式を設定する</td></tr>
783<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>SSITimeFormat <var>formatstring</var></code></td></tr>
784<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>SSITimeFormat "%A, %d-%b-%Y %H:%M:%S %Z"</code></td></tr>
785<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr>
786<tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>All</td></tr>
787<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
788<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_include</td></tr>
789<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>2.0.30 以降で使用可能</td></tr>
790</table>
791<p>このディレクティブは <code>DATE</code> 環境変数を echo して日付を現す文字列が
792    表示されるときの書式を変更します。<var>formatstring</var> は
793    C 標準ライブラリの <code>strftime(3)</code> と同じ形式です。</p>
794
795    <p>このディレクティブは <code>&lt;!--#config
796    timefmt=<var>formatstring</var> --&gt;</code> 要素と同じ効果になります。</p>
797
798    <div class="example"><h3>例</h3><p><code>
799      SSITimeFormat "%R, %B %d, %Y"
800    </code></p></div>
801
802    <p>上のディレクティブでは、日付は "22:26, June 14, 2002" という
803    形式で表示されます。</p>
804
805</div>
806<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
807<div class="directive-section"><h2><a name="SSIUndefinedEcho" id="SSIUndefinedEcho">SSIUndefinedEcho</a> <a name="ssiundefinedecho" id="ssiundefinedecho">ディレクティブ</a></h2>
808<table class="directive">
809<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>未定義の変数が echo されたときに表示される文字列</td></tr>
810<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>SSIUndefinedEcho <var>string</var></code></td></tr>
811<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>SSIUndefinedEcho "(none)"</code></td></tr>
812<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr>
813<tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>All</td></tr>
814<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
815<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_include</td></tr>
816<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>2.0.34 以降で利用可能</td></tr>
817</table>
818    <p>このディレクティブは変数が定義されていないにも関わらず
819    "echo" されたときに <code class="module"><a href="/mod/mod_include.html">mod_include</a></code>
820    が表示する文字列を変更します。</p>
821
822    <div class="example"><h3>例</h3><p><code>
823      SSIUndefinedEcho "&lt;!-- undef --&gt;"
824    </code></p></div>
825
826</div>
827<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
828<div class="directive-section"><h2><a name="XBitHack" id="XBitHack">XBitHack</a> <a name="xbithack" id="xbithack">ディレクティブ</a></h2>
829<table class="directive">
830<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>実行ビットが設定されたファイルの SSI ディレクティブを
831解析する</td></tr>
832<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>XBitHack on|off|full</code></td></tr>
833<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>XBitHack off</code></td></tr>
834<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr>
835<tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>Options</td></tr>
836<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
837<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_include</td></tr>
838</table>
839    <p><code class="directive">XBitHack</code> ディレクティブは通常の HTML
840    ドキュメントの解析を制御します。このディレクティブは <a class="glossarylink" href="/glossary.html#mime-type" title="用語集を参照">MIME タイプ</a>
841    <code>text/html</code> と関連付けられているファイルにのみ影響します。
842    <code class="directive">XBitHack</code> は以下の値をとることができます。</p>
843
844    <dl>
845      <dt><code>off</code></dt>
846      <dd>実行可能ファイルに対して特別な扱いをしません。</dd>
847
848      <dt><code>on</code></dt>
849      <dd>ユーザの実行ビットが設定されている <code>text/html</code>
850      ファイルは全てサーバで解析する html ドキュメントとして扱われます。</dd>
851
852      <dt><code>full</code></dt>
853      <dd><code>on</code> と同様ですが、グループ実行ビットもテストします。
854      もしそれが設定されていれば、返されるファイルの <code>Last-modified</code> の
855      日付をファイルの最終修正時刻にします。それが設定されていないときは、
856      last-modified の日付は送られません。このビットを設定すると、
857      クライアントやプロキシがリクエストをキャッシュできるようになります。
858
859      <div class="note"><strong>注意</strong> 他の CGI を <code>#include</code>
860      するかもしれないものや、各アクセスに対して違う出力を生成する
861      (もしくは後のリクエストで変わるかもしれないもの)
862      すべての SSI スクリプトに対してグループ実行ビットが
863      設定されていないことを確認できない場合は、full は使わない方が良い
864      でしょう。</div>
865      </dd>
866    </dl>
867
868    
869</div>
870</div>
871<div class="bottomlang">
872<p><span>翻訳済み言語: </span><a href="/en/mod/mod_include.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
873<a href="/fr/mod/mod_include.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
874<a href="/ja/mod/mod_include.html" title="Japanese">&nbsp;ja&nbsp;</a></p>
875</div><div class="top"><a href="#page-header"><img src="/images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">コメント</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
876<script type="text/javascript"><!--//--><![CDATA[//><!--
877var comments_shortname = 'httpd';
878var comments_identifier = 'http://httpd.apache.org/docs/2.4/mod/mod_include.html';
879(function(w, d) {
880    if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
881        d.write('<div id="comments_thread"><\/div>');
882        var s = d.createElement('script');
883        s.type = 'text/javascript';
884        s.async = true;
885        s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
886        (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
887    }
888    else { 
889        d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
890    }
891})(window, document);
892//--><!]]></script></div><div id="footer">
893<p class="apache">Copyright 2014 The Apache Software Foundation.<br />この文書は <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> のライセンスで提供されています。.</p>
894<p class="menu"><a href="/mod/">モジュール</a> | <a href="/mod/directives.html">ディレクティブ</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="/glossary.html">用語</a> | <a href="/sitemap.html">サイトマップ</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
895if (typeof(prettyPrint) !== 'undefined') {
896    prettyPrint();
897}
898//--><!]]></script>
899</body></html>