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
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" />
12 <link href=
"../images/favicon.ico" rel=
"shortcut icon" /></head>
14 <div id=
"page-header">
15 <p class=
"menu"><a href=
"../mod/">モジュール
</a> |
<a href=
"../mod/directives.html">ディレクティブ
</a> |
<a href=
"../faq/">FAQ
</a> |
<a href=
"../glossary.html">用語
</a> |
<a href=
"../sitemap.html">サイトマップ
</a></p>
16 <p class=
"apache">Apache HTTP サーバ バージョン
2.3</p>
17 <img alt=
"" src=
"../images/feather.gif" /></div>
18 <div class=
"up"><a href=
"./"><img title=
"<-" alt=
"<-" src=
"../images/left.gif" /></a></div>
20 <a href=
"http://www.apache.org/">Apache
</a> > <a href=
"http://httpd.apache.org/">HTTP サーバ
</a> > <a href=
"http://httpd.apache.org/docs/">ドキュメンテーション
</a> > <a href=
"../">バージョン
21 2.3</a> > <a href=
"./">モジュール
</a></div>
22 <div id=
"page-content">
23 <div id=
"preamble"><h1>Apache モジュール mod_include
</h1>
25 <p><span>言語:
</span><a href=
"../en/mod/mod_include.html" hreflang=
"en" rel=
"alternate" title=
"English"> en
</a> |
26 <a href=
"../ja/mod/mod_include.html" title=
"Japanese"> ja
</a></p>
28 <div class=
"outofdate">この日本語訳はすでに古くなっている可能性があります。
29 更新された内容を見るには英語版をご覧下さい。
</div>
30 <table class=
"module"><tr><th><a href=
"module-dict.html#Description">説明:
</a></th><td>サーバがパースする html ドキュメント (Server Side Includes)
</td></tr>
31 <tr><th><a href=
"module-dict.html#Status">ステータス:
</a></th><td>Base
</td></tr>
32 <tr><th><a href=
"module-dict.html#ModuleIdentifier">モジュール識別子:
</a></th><td>include_module
</td></tr>
33 <tr><th><a href=
"module-dict.html#SourceFile">ソースファイル:
</a></th><td>mod_include.c
</td></tr>
34 <tr><th><a href=
"module-dict.html#Compatibility">互換性:
</a></th><td>Apache
2.0 から出力フィルタとして実装されました。
</td></tr></table>
37 <p>このモジュールはファイルがクライアントに送られる前に処理するフィルタを
38 提供します。処理の内容は
<dfn>要素
</dfn>と呼ばれる特別な形式の SGML コメントにより
39 制御されます。これらの要素は条件分岐や、他のファイルや
40 プログラムの出力の取り込み、環境変数の設定や表示を行なうことが
43 <div id=
"quickview"><h3 class=
"directives">ディレクティブ
</h3>
45 <li><img alt=
"" src=
"../images/down.gif" /> <a href=
"#ssiaccessenable">SSIAccessEnable
</a></li>
46 <li><img alt=
"" src=
"../images/down.gif" /> <a href=
"#ssiendtag">SSIEndTag
</a></li>
47 <li><img alt=
"" src=
"../images/down.gif" /> <a href=
"#ssierrormsg">SSIErrorMsg
</a></li>
48 <li><img alt=
"" src=
"../images/down.gif" /> <a href=
"#ssistarttag">SSIStartTag
</a></li>
49 <li><img alt=
"" src=
"../images/down.gif" /> <a href=
"#ssitimeformat">SSITimeFormat
</a></li>
50 <li><img alt=
"" src=
"../images/down.gif" /> <a href=
"#ssiundefinedecho">SSIUndefinedEcho
</a></li>
51 <li><img alt=
"" src=
"../images/down.gif" /> <a href=
"#xbithack">XBitHack
</a></li>
55 <li><img alt=
"" src=
"../images/down.gif" /> <a href=
"#enabling">Server-Side Includes を有効にする
</a></li>
56 <li><img alt=
"" src=
"../images/down.gif" /> <a href=
"#pathinfo">サーバサイドインクルード (SSI) での PATH_INFO
</a></li>
57 <li><img alt=
"" src=
"../images/down.gif" /> <a href=
"#elements">基本要素
</a></li>
58 <li><img alt=
"" src=
"../images/down.gif" /> <a href=
"#includevars">Include 変数
</a></li>
59 <li><img alt=
"" src=
"../images/down.gif" /> <a href=
"#substitution">変数置換
</a></li>
60 <li><img alt=
"" src=
"../images/down.gif" /> <a href=
"#flowctrl">フロー制御要素
</a></li>
63 <li><code class=
"directive"><a href=
"../mod/core.html#options">Options
</a></code></li>
64 <li><code class=
"directive"><a href=
"../mod/core.html#acceptpathinfo">AcceptPathInfo
</a></code></li>
65 <li><a href=
"../filter.html">フィルタ
</a></li>
66 <li><a href=
"../howto/ssi.html">SSI チュートリアル
</a></li>
68 <div class=
"top"><a href=
"#page-header"><img alt=
"top" src=
"../images/up.gif" /></a></div>
70 <h2><a name=
"enabling" id=
"enabling">Server-Side Includes を有効にする
</a></h2>
73 <p>Server Side Includes は
<code>INCLUDES
</code>
74 <a href=
"../filter.html">フィルタ
</a> により実装されています。
75 Server-side include のディレクティブを含むドキュメントの拡張子が
76 .shtml の場合、以下のディレクティブでは Apache がそれらを
77 パースして、その結果できるドキュメントに
<code>text/html
</code> の
80 <div class=
"example"><p><code>
81 AddType text/html .shtml
<br />
82 AddOutputFilter INCLUDES .shtml
85 <p>以下のディレクティブは shtml ファイルのあるディレクトリで指定されている
86 必要があります (通常は
<code class=
"directive"><a href=
"../mod/core.html#directory"><Directory
></a></code> セクションで指定しますが、
87 <code class=
"directive"><a href=
"../mod/core.html#allowoverride">AllowOverride
</a></code> <code>Options
</code>
88 が設定されていると、
<code>.htaccess
</code> ファイルに書くこともできます):
</p>
90 <div class=
"example"><p><code>
94 <p>互換性を保つために、
<code>server-parsed
</code>
95 <a href=
"../handler.html">ハンドラ
</a> も INCLUDES フィルタを
96 有効にします。MIME タイプ
<code>text/x-server-parsed-html
</code> や
97 <code>text/x-server-parsed-html3
</code> のドキュメントに対しても
98 Apache は INCLUDES フィルタを有効にします (出力されるものは
99 MIME タイプ
<code>text/html
</code> になります)。
</p>
101 <p>詳しい情報は
<a href=
"../howto/ssi.html">Tutorial on Server Side Includes
</a>.
</p>
102 </div><div class=
"top"><a href=
"#page-header"><img alt=
"top" src=
"../images/up.gif" /></a></div>
103 <div class=
"section">
104 <h2><a name=
"pathinfo" id=
"pathinfo">サーバサイドインクルード (SSI) での PATH_INFO
</a></h2>
107 <p>SSI で処理されるファイルはデフォルトでは
<code>PATH_INFO
</code>
109 付きのリクエストを受け入れなくなりました。
<code class=
"directive"><a href=
"../mod/core.html#acceptpathinfo">AcceptPathInfo
</a></code> ディレクティブで
110 <code>PATH_INFO
</code> 付きのリクエストを受け入れるようにサーバを
112 </div><div class=
"top"><a href=
"#page-header"><img alt=
"top" src=
"../images/up.gif" /></a></div>
113 <div class=
"section">
114 <h2><a name=
"elements" id=
"elements">基本要素
</a></h2>
115 <p>ドキュメントは、SGML のコメントとして特別なコマンドが埋め込まれた
116 HTML ドキュメントとしてパースされます。コマンドの構文は次のように
119 <div class=
"example"><p><code>
120 <!--#
<var>element
</var> <var>attribute
</var>=
<var>value
</var>
121 <var>attribute
</var>=
<var>value
</var> ... --
>
124 <p>値
<span class=
"transnote">(
<em>訳注:
</em> value)
</span> は二重引用符で囲むのが一般的ですが、
125 シングルクオート (') とバッククオート (`) も使用できます。
126 多くのコマンドは属性-値
<span class=
"transnote">(
<em>訳注:
</em> attribute-value)
</span> の組を一つだけ指定できます。
127 コメントの終わり (
<code>--
></code>)
128 の前には、SSI の句の一部だと解釈されないようにするために空白を
129 入れてください。最初の
<code><!--#
</code> はまとめて
<em>一つ
</em>の
130 句で、空白をふくんではいけないこと注意してください。
</p>
132 <p>要素
<span class=
"transnote">(
<em>訳注:
</em> element)
</span> を以下の表に示します。
</p>
134 <table class=
"bordered">
135 <tr><th>要素
</th><th>説明
</th></tr>
136 <tr><td><code><a href=
"#element.config">config
</a></code></td>
137 <td>configure output formats
</td></tr>
138 <tr><td><code><a href=
"#element.echo">echo
</a></code></td>
139 <td>print variables
</td></tr>
140 <tr><td><code><a href=
"#element.exec">exec
</a></code></td>
141 <td>execute external programs
</td></tr>
142 <tr><td><code><a href=
"#element.fsize">fsize
</a></code></td>
143 <td>print size of a file
</td></tr>
144 <tr><td><code><a href=
"#element.flastmod">flastmod
</a></code></td>
145 <td>print last modification time of a file
</td></tr>
146 <tr><td><code><a href=
"#element.include">include
</a></code></td>
147 <td>include a file
</td></tr>
148 <tr><td><code><a href=
"#element.printenv">printenv
</a></code></td>
149 <td>print all available variables
</td></tr>
150 <tr><td><code><a href=
"#element.set">set
</a></code></td>
151 <td>set a value of a variable
</td></tr>
154 <p>SSI 要素は
<code class=
"module"><a href=
"../mod/mod_include.html">mod_include
</a></code> 以外のモジュールで
156 <code><a href=
"#element.exec">exec
</a></code> 要素は
157 <code class=
"module"><a href=
"../mod/mod_cgi.html">mod_cgi
</a></code> で提供されていて、このモジュールが
158 ロードされる場合にのみ利用可能となります。
</p>
160 <h3><a name=
"element.config" id=
"element.config">config 要素
</a></h3>
161 <p>次のコマンドは解析の様々な側面を制御します。属性は次の通りです。
</p>
164 <dt><code>echomsg
</code> (
<em>Apache
2.1 以降
</em>)
</dt>
165 <dd>指定される値は、
<code><a href=
"#element.echo">echo
</a></code>
166 要素が未定義の変数をエコーしようとした際に、
167 クライアントに送られるメッセージになります。
168 <code class=
"directive"><a href=
"#ssiundefinedecho">SSIUndefinedEcho
</a></code>
171 <dt><code>errmsg
</code></dt>
172 <dd>この値が、ドキュメントの解析中にエラーが発生した時に
173 クライアントに送信されるメッセージになります。
174 <code class=
"directive"><a href=
"#ssierrormsg">SSIErrorMsg
</a></code>
177 <dt><code>sizefmt
</code></dt>
178 <dd>この値は、ファイルのサイズを表示する際に使用する
179 フォーマットを設定します。値は バイトカウントの
180 <code>bytes
</code>か、Kb や Mb を優先的に使用する
181 <code>abbrec
</code> (例えば
1024 バイトは
"1K" と表示されます)
184 <dt><code>timefmt
</code></dt>
185 <dd>この値は
<code>strftime(
3)
</code> ライブラリルーチンが
186 日時をプリントする際に用いられます。
</dd>
190 <h3><a name=
"element.echo" id=
"element.echo">echo 要素
</a></h3>
191 <p>このコマンドは以下で定義されている
<a href=
"#includevars">include
192 変数
</a> を表示します。変数が設定されていない場合は
<code class=
"directive"><a href=
"#ssiundefinedecho">SSIUndefinedEcho
</a></code> ディレクティブで
193 決定される結果となります。日付はその時点での
<code>timefmt
</code> に従って
194 表示されます。属性は次の通りです。
</p>
197 <dt><code>var
</code></dt>
198 <dd>値は表示する変数の名前です。
</dd>
200 <dt><code>encoding
</code></dt>
201 <dd><p>変数を出力する前に、変数中の特別文字をどのようにエンコードするかを
202 指定します。
<code>none
</code> に設定されていると、エンコードは行なわれません。
203 <code>url
</code> に設定されていると、URL エンコード (%-エンコードとも
204 呼ばれています。これはリンク等の URL の使用に適切です) が
205 行なわれます。
<code>echo
</code> 要素の開始時は、デフォルトは
206 <code>entity
</code> に設定されています。これはエンティティエンコード
207 (段落やテキストなどのブロックレベルの HTML エレメントのコンテキストに
208 適しています) を行ないます。これは
<code>encoding
</code> 属性
209 を加えることで変更できます。変更は次の
<code>encoding
</code> 属性か、
212 <p><code>encoding
</code> 属性はエンコードの変更をしたい
<code>var
</code>
213 の
<em>前に
</em> ある必要があることに注意してください。
214 また、ISO-
8859-
1 エンコーディングで
215 定義されている特別な文字だけがエンコードされます。
216 別の文字のエンコーディングの場合は、このエンコーディングは
217 望みの結果にならないかもしれません。
</p>
219 <div class=
"warning">
220 クロスサイトスクリプティングの問題を避けるために、
221 <em>常に
</em>ユーザからのデータをエンコードすべきです。
227 <h3><a name=
"element.exec" id=
"element.exec">exec 要素
</a></h3>
228 <p><code>exec
</code> コマンドは指定されたシェルコマンドや CGI スクリプトを
229 実行します。
<code class=
"module"><a href=
"../mod/mod_cgi.html">mod_cgi
</a></code> がサーバに組み込まれているいなければ
230 なりません。
<code class=
"directive"><a href=
"../mod/core.html#option">Option
</a></code>
231 <code>IncludesNOEXEC
</code> はこのコマンドを無効にします。
235 <dt><code>cgi
</code></dt>
236 <dd><p>値は (%-エンコードされた) URL を指定します。パスが
237 スラッシュ (/) で始まらないときは、ドキュメントからの
238 相対パスとして扱われます。このパスで参照されているドキュメントは
239 サーバが CGI スクリプトとして扱っていなくても CGI スクリプトとして
240 起動されます。ただし、スクリプトのあるディレクトリでは
241 (
<code class=
"directive"><a href=
"../mod/mod_alias.html#scriptalias">ScriptAlias
</a></code>
242 や
<code class=
"directive"><a href=
"../mod/core.html#option">Option
</a></code> <code>ExecCGI
</code>
243 によって) CGI スクリプトの使用が許可されている必要があります。
</p>
245 <p>CGI スクリプトには、クライアントからの元々のリクエストの
246 <code>PATH_INFO
</code> とクエリー文字列 (
<code>QUERY_STRING
</code>) が渡されます。
247 これらは URL パスとして特定
<em>できない
</em>ものです。
248 スクリプトは標準
<a href=
"mod_cgi.html">CGI
</a> 環境に加えて、include 変数を
251 <div class=
"example"><h3>例
</h3><p><code>
252 <!--#exec
cgi=
"/cgi-bin/example.cgi" --
>
255 <p>スクリプトが、出力の代わりに
<code>Location:
</code> ヘッダを返すと、
256 HTML のアンカー
<span class=
"transnote">(
<em>訳注:
</em> リンク)
</span> に変換されます。
</p>
258 <p><code>exec cgi
</code> よりも、
259 <code><a href=
"#includevirtual">include virtual
</a></code>
260 の方を使うようにしてください。特に、CGI への追加の引数を
261 クエリー文字列を使って渡すことは
<code>exec cgi
</code> は
262 できませんが、
<code>include virtual
</code> は以下のようにして
265 <div class=
"example"><p><code>
266 <!--#include
virtual=
"/cgi-bin/example.cgi?argument=value" --
>
270 <dt><code>cmd
</code></dt>
271 <dd><p>サーバは指定された文字列を
<code>/bin/sh
</code> を使って
272 実行します。コマンドは通常の CGI 変数に加えて
<a href=
"#includevars">include 変数
</a>も使うことができます。
</p>
274 <p>ほとんどの場合、
<code><a href=
"#includevirtual">#include
275 virtual
</a></code> を使う方が
<code>#exec cgi
</code> や
<code>#exec
276 cmd
</code> を使うよりも良いです。前者 (
<code>#include virtual
</code>)
277 は標準の Apache のサブリクエスト機構を使ってファイルやスクリプトの
279 こちらの方がよくテストされメンテナンスされた方法です。
</p>
281 <p>さらに、Win32 のようないくつかのプラットフォームや、
<a href=
"../suexec.html">suexec
</a> を使っている unix では、
282 <code>exec
</code> ディレクティブのコマンドに
283 引数を渡したり、コマンドに空白を入れることはできません。
284 ですから、以下のものは unix の suexec でない設定では動作しますが、
285 Win32 や suexec を使っている unix では期待した結果にはなりません:
</p>
287 <div class=
"example"><p><code>
288 <!--#exec
cmd=
"perl /path/to/perlscript arg1 arg2" --
>
294 <h3><a name=
"element.fsize" id=
"element.fsize">fsize 要素
</a></h3>
295 <p>このコマンドは指定されたファイルの大きさを
<code>sizefmt
</code> の
296 書式指定に基づいて出力します。属性は次の通りです。
</p>
299 <dt><code>file
</code></dt>
300 <dd>値は解析されているドキュメントの存在するディレクトリからの
303 <dt><code>virtual
</code></dt>
304 <dd> 値は (% エンコードされた) URL-path です。スラッシュ (/) で
305 始まらないときはドキュメントからの相対パスとして扱われます。
306 CGI の出力のサイズはプリント
<em>されません
</em>。CGI
307 スクリプト自体のサイズがプリントされることに注意してください。
</dd>
311 <h3><a name=
"element.flastmod" id=
"element.flastmod">flastmod 要素
</a></h3>
312 <p>このコマンドは指定されたファイルの最終修正時刻を
313 <code>timefmt
</code> 書式指定に従って表示します。
314 指定可能な属性は
<code>fsize
</code> コマンドと同じです。
</p>
317 <h3><a name=
"element.include" id=
"element.include">include 要素
</a></h3>
318 <p>このコマンドは別の文書やファイルのテキストを解析しているファイルに
319 挿入します。挿入されるファイルはアクセス制御の管理下にあります。
320 解析しているファイルの存在するディレクトリに
321 <a href=
"core.html#options">Option
</a> <code>IncludesNOEXEC
</code>
322 が設定されている場合、text
<a class=
"glossarylink" href=
"../glossary.html#mime-type" title=
"用語集を参照">MIME タイプ
</a>
323 (
<code>text/plain
</code>,
<code>text/html
</code> 等)
324 のドキュメントのみインクルードが行なわれます。
325 その他の場合は、クエリー文字列も含め、コマンドで指定された
326 完全な URL を使って普通に CGI スクリプトが呼び出されます。
</p>
328 <p>属性が文書の位置を指定します。include コマンドに与えられたそれぞれの
329 属性に対して挿入作業が行なわれます。有効な属性は次の通りです。
</p>
332 <dt><code>file
</code></dt>
333 <dd>値は解析されているドキュメントの存在するディレクトリからの
335 <code>../
</code> を含んでいたり、絶対パスを指定したりはできません。
336 ですから、ドキュメントルートの外にあるファイルや、ディレクトリ構造で
337 上位にあるファイルを挿入することはできません。
338 常にこの属性よりは、
<code>virtual
</code> 属性を使うようにしてください。
341 <dt><code><a id=
"includevirtual" name=
"includevirtual">virtual
</a></code></dt>
342 <dd><p>値は解析されているドキュメントからの (% エンコードされた) URL
343 です。URL にはスキームやホスト名を含めることはできません。パスと、
344 もしあればクエリー文字列を指定できるだけです。スラッシュ (/) から
345 始まらない場合は、ドキュメントからの相対パスとして扱われます。
</p>
347 <p>URL は属性から作られ、その URL をクライアントがアクセスしたときに
348 出力される内容が解析後の出力に含められます。ですから、挿入される
349 ファイルは入れ子構造にすることができます。
</p>
351 <p>指定された URL が CGI プログラムであった場合は、
352 プログラムが実行され、その出力が解析しているファイル中の
353 ディレクティブがあった位置に挿入されます。CGI の url に
354 クエリー URL を入れることもできます。
</p>
356 <div class=
"example"><p><code>
357 <!--#include
virtual=
"/cgi-bin/example.cgi?argument=value" --
>
360 <p>HTML ドキュメントに CGI プログラムの出力を含める方法としては、
361 <code>include virtual
</code> の方が
<code>exec cgi
</code> よりも
364 <p><code class=
"directive"><a href=
"../mod/mod_request.html#keptbodysize">KeptBodySize
</a></code>
365 ディレクティブが設定されていて、かつ、この対象ファイルが
366 <span class=
"transnote">(
<em>訳注:
</em> POST リクエストを)
</span>受け入れできるなら、
367 POST リクエストを受け取ってサブリクエストを発行する際にも
369 このディレクティブが設定されていない場合は、
370 サブリクエストは GET リクエストとして処理されます。
</p>
376 <h3><a name=
"element.printenv" id=
"element.printenv">printenv 要素
</a></h3>
377 <p>これは、存在するすべての変数とその値を表示します。Apache
1.3.12 から、
378 特別な文字は出力される前にエンティティエンコード (詳細は
<a href=
"#element.echo"><code>echo
</code></a> 要素を参照)
379 されるようになりました。属性はありません。
</p>
381 <div class=
"example"><h3>例
</h3><p><code>
382 <!--#printenv --
>
386 <h3><a name=
"element.set" id=
"element.set">set 要素
</a></h3>
387 <p>これは変数の値を設定します。属性は次の通りです。
</p>
390 <dt><code>var
</code></dt>
393 <dt><code>value
</code></dt>
397 <div class=
"example"><h3>例
</h3><p><code>
398 <!--#set
var=
"category" value=
"help" --
>
401 </div><div class=
"top"><a href=
"#page-header"><img alt=
"top" src=
"../images/up.gif" /></a></div>
402 <div class=
"section">
403 <h2><a name=
"includevars" id=
"includevars">Include 変数
</a></h2>
406 <p>標準 CGI 環境の変数に加えて、
<code>echo
</code> コマンドや、
407 <code>if
</code> や
<code>elif
</code>, それにドキュメントから呼び出される
408 すべてのプログラムから使用できる変数があります。
</p>
411 <dt><code>DATE_GMT
</code></dt>
412 <dd>グリニッジ標準時による現在時刻。
</dd>
414 <dt><code>DATE_LOCAL
</code></dt>
415 <dd>ローカルの標準時による現在時刻。
</dd>
417 <dt><code>DOCUMENT_NAME
</code></dt>
418 <dd>ユーザがリクエストした (ディレクトリを除いた) ファイル名。
</dd>
420 <dt><code>DOCUMENT_URI
</code></dt>
421 <dd>ユーザがリクエストした (% エンコードされた) URL-path。
422 挿入ファイルが入れ子になっている場合は、解析されている
423 ドキュメントの URL では
<em>ない
</em>ことに注意してください。
</dd>
425 <dt><code>LAST_MODIFIED
</code></dt>
426 <dd>ユーザがリクエストしたドキュメントの最終修正時刻。
</dd>
428 <dt><code>QUERY_STRING_UNESCAPED
</code></dt>
429 <dd>クエリー文字列がある場合、この変数には (%-デコードされた)
430 クエリー文字列が代入されていて、shell で使用できるように
431 <em>エスケープ
</em>されています (
<code>&</code>
432 といった特殊文字にはバックスラッシュが直前に置かれます)。
</dd>
434 </div><div class=
"top"><a href=
"#page-header"><img alt=
"top" src=
"../images/up.gif" /></a></div>
435 <div class=
"section">
436 <h2><a name=
"substitution" id=
"substitution">変数置換
</a></h2>
438 <p>変数置換はたいていの場合 SSI ディレクティブの引数として妥当な場所にある
439 引用符で囲まれた文字列中で行なわれます。これに該当するものには、
441 <code>exec
</code>,
<code>flastmod
</code>,
<code>fsize
</code>,
442 <code>include
</code>,
<code>echo
</code>,
<code>set
</code> の
443 各ディレクティブと、条件分岐用のオペレータへの引数があります。
444 ドル記号はバックスラッシュを使うことで使うことができます:
</p>
446 <div class=
"example"><p><code>
447 <!--#if
expr=
"$a = \$test" --
>
450 <p>変数名としてみなされる文字列の中で変数への参照を置換する必要があるときは、
451 シェルでの変数置換のように、中括弧で括ることで区別することができます:
</p>
453 <div class=
"example"><p><code>
454 <!--#set
var=
"Zed" value=
"${REMOTE_HOST}_${REQUEST_METHOD}" --
>
457 <p>この例では、
<code>REMOTE_HOST
</code> が
458 "<code>X</code>" で
<code>REQUEST_METHOD
</code> が
459 "<code>Y</code>" のときに変数
<code>Zed
</code> を
"<code>X_Y</code>"
462 <p>以下の例では、
<code>DOCUMENT_URI
</code> が
<code>/foo/file.html
</code>
463 のときに
"in foo" を、
<code>/bar/file.html
</code> のときに
"in bar" を、
464 どちらでもないときには
"in neither" を表示します。
</p>
466 <div class=
"example"><p><code>
467 <!--#if expr='
"$DOCUMENT_URI" =
"/foo/file.html"' --
><br />
468 <span class=
"indent">
471 <!--#elif expr='
"$DOCUMENT_URI" =
"/bar/file.html"' --
><br />
472 <span class=
"indent">
475 <!--#else --
><br />
476 <span class=
"indent">
481 </div><div class=
"top"><a href=
"#page-header"><img alt=
"top" src=
"../images/up.gif" /></a></div>
482 <div class=
"section">
483 <h2><a name=
"flowctrl" id=
"flowctrl">フロー制御要素
</a></h2>
486 <p>基本的なフローコントロール要素は次の通りです。
</p>
488 <div class=
"example"><p><code>
489 <!--#if
expr=
"<var>test_condition</var>" --
><br />
490 <!--#elif
expr=
"<var>test_condition</var>" --
><br />
491 <!--#else --
><br />
495 <p><code>if
</code> 要素はプログラミング言語の
496 if 文と同じように動作します。条件が評価され、結果が真であれば次の
497 <code>elif
</code> か
<code>else
</code> か
<code>endif
</code>
498 要素までの文字列が出力に挿入されます。
</p>
500 <p><code>elif
</code> や
<code>else
</code> 文は
<var>test_condition
</var>
501 が偽のときにテキストを出力に挿入するために使われます。
502 これらの要素はあってもなくても構いません。
</p>
504 <p><code>endif
</code> 要素は
<code>if
</code>
505 要素を終了させます。この要素は必須です。
</p>
507 <p><var>test_condition
</var> は以下のどれかです:
</p>
510 <dt><code><var>string
</var></code></dt>
511 <dd><var>string
</var> が空でない場合に真です
</dd>
513 <dt><code><var>-A string
</var></code></dt>
514 <dd><p><span class=
"transnote">(
<em>訳注:
</em> httpd の)
</span>設定を検査して、
515 文字列で指定した URL にアクセスできる場合 true で、
517 <code class=
"directive">SSIAccessEnable
</code> が有効のときにのみ
519 承認されていないユーザからは隠しておきたい URL についての情報、
520 たとえば URL へのリンクなどがある場合に、便利です。
521 検査では URL へアクセスできるかの権限のみが行われ、URL
522 が存在するかどうかについては検査されないことに注意してください。
</p>
524 <div class=
"example"><h3>Example
</h3><p><code>
525 <!--#if
expr=
"-A /private" --
><br />
526 <span class=
"indent">
527 Click
<a
href=
"/private">here
</a
> to access private
534 <dt><code><var>string1
</var> =
<var>string2
</var><br />
535 <var>string1
</var> ==
<var>string2
</var><br />
536 <var>string1
</var> !=
<var>string2
</var></code></dt>
538 <dd><p><var>string1
</var> と
<var>string2
</var> を比較します。
539 <var>string2
</var> が
<code>/
<var>string
</var>/
</code>
540 という形式であれば、正規表現として比較されます。正規表現は
541 <a href=
"http://www.pcre.org">PCRE
</a> エンジンで実装されていて、
542 <a href=
"http://www.perl.com">perl
5</a> と同じ構文を使用します。
543 <code>==
</code> は単に
<code>=
</code> の別名で、まったく同じ動作を
546 <p>正のマッチング (
<code>=
</code> または
<code>==
</code>) の場合は、
547 正規表現でグループ分けされたパーツをキャプチャすることができます。
548 キャプチャされた部分は特殊変数
<code>$
1</code> ..
<code>$
9</code>
551 <div class=
"example"><h3>例
</h3><p><code>
552 <!--#if
expr=
"$QUERY_STRING = /^sid=([a-zA-Z0-9]+)/" --
><br />
553 <span class=
"indent">
554 <!--#set
var=
"session" value=
"$1" --
><br />
560 <dt><code><var>string1
</var> < <var>string2
</var><br />
561 <var>string1
</var> <=
<var>string2
</var><br />
562 <var>string1
</var> > <var>string2
</var><br />
563 <var>string1
</var> >=
<var>string2
</var></code></dt>
565 <dd><var>string1
</var> と
<var>string2
</var> を比較します。
566 <em>文字列として
</em>比較される (
<code>strcmp(
3)
</code> を使用)
567 ことに注意してください。ですから、文字列
"100" は
"20"
570 <dt><code>(
<var>test_condition
</var> )
</code></dt>
571 <dd><var>test_condition
</var> が真のとき、真
</dd>
573 <dt><code>!
<var>test_condition
</var></code></dt>
574 <dd><var>test_condition
</var> が偽のとき、真
</dd>
576 <dt><code><var>test_condition1
</var> &&
577 <var>test_condition2
</var></code></dt>
578 <dd><var>test_condition1
</var> かつ
579 <var>test_condition2
</var> が真のとき、真
</dd>
581 <dt><code><var>test_condition1
</var> ||
582 <var>test_condition2
</var></code></dt>
583 <dd><var>test_condition1
</var> または
584 <var>test_condition2
</var> が真のとき、真
</dd>
587 <p>"<em>=</em>" と
"<em>!=</em>" の方が
"<em>&&</em>" より
588 きつく束縛します。
"<em>!</em>" の束縛が一番きつくなっています。
591 <div class=
"example"><p><code>
592 <!--#if
expr=
"$a = test1 && $b = test2" --
><br />
593 <!--#if
expr=
"($a = test1) && ($b = test2)" --
>
596 <p>真偽値オペレータ
<code>&&</code> と
<code>||
</code>
598 これらのオペレータで一方により強い優先度をつけたい場合には、
601 <p>変数やオペレータとして認識されないものはすべて文字列として
602 扱われます。文字列は引用符で囲むこともできます:
<code>'string'
</code>
603 のように。引用符で囲まれていない文字列には空白 (スペースとタブ)
604 を含めることはできません。それらは変数などの句を分離するために
605 使われているからです。複数の文字列が続いているときは、
606 空白を間に入れて一つにくっつけられます。ですから、
</p>
608 <div class=
"example"><p><code><var>string1
</var> <var>string2
</var></code> は
<code><var>string1
</var> <var>string2
</var></code> になります。
<br />
612 <code>'
<var>string1
</var> <var>string2
</var>'
</code> は
<code><var>string1
</var> <var>string2
</var></code>
615 <div class=
"note"><h3>真偽値表現の最適化
</h3>
616 <p>式がもっと複雑になり、処理の速度低下が顕著になった場合は、
617 評価ルールに従って最適化してみると良いでしょう。
</p>
619 <li>評価は左から右に向かって行われます。
</li>
620 <li>二値真偽値オペレータ (
<code>&&</code> と
<code>||
</code>)
621 は、出来る限り短絡評価されます。つまり結果として上記のルールは、
622 <code class=
"module"><a href=
"../mod/mod_include.html">mod_include
</a></code> が左の評価式を評価します。
623 左側で結果を十分決定できる場合は、評価はそこで停止します。
624 そうでない場合は右側を評価して、左と右の両方から結果を計算します。
</li>
625 <li>短絡評価は評価の対象に正規表現が含まれる場合、オフになります。
626 後方参照する変数 (
<code>$
1</code> ..
<code>$
9</code>)
627 を埋めるために、実際に評価する必要があるからです。
</li>
629 <p>特定の式がどのように扱われるかを知りたい場合は、
630 <code>-DDEBUG_INCLUDE
</code> コンパイラオプションを付けて
631 <code class=
"module"><a href=
"../mod/mod_include.html">mod_include
</a></code> をリコンパイルすると良いでしょう。
632 これにより、全てのパースされた式に対して、字句解析情報、
634 それがどのようにクライアントに送られた出力まで評価されたかを
638 <div class=
"note"><h3>正規表現内での / のエスケープ
</h3>
639 <p>正規表現内でデリミタとして扱いたくない / があれば、それらは全て
641 正規表現の意味がどうであろうとエスケープは必要です。
</p>
644 <div class=
"top"><a href=
"#page-header"><img alt=
"top" src=
"../images/up.gif" /></a></div>
645 <div class=
"directive-section"><h2><a name=
"SSIAccessEnable" id=
"SSIAccessEnable">SSIAccessEnable
</a> <a name=
"ssiaccessenable" id=
"ssiaccessenable">ディレクティブ
</a></h2>
646 <table class=
"directive">
647 <tr><th><a href=
"directive-dict.html#Description">説明:
</a></th><td>条件分岐フローの制御で -A フラグが使えるようにする
</td></tr>
648 <tr><th><a href=
"directive-dict.html#Syntax">構文:
</a></th><td><code>SSIAccessEnable on|off
</code></td></tr>
649 <tr><th><a href=
"directive-dict.html#Default">デフォルト:
</a></th><td><code>SSIAccessEnable off
</code></td></tr>
650 <tr><th><a href=
"directive-dict.html#Context">コンテキスト:
</a></th><td>ディレクトリ, .htaccess
</td></tr>
651 <tr><th><a href=
"directive-dict.html#Status">ステータス:
</a></th><td>Base
</td></tr>
652 <tr><th><a href=
"directive-dict.html#Module">モジュール:
</a></th><td>mod_include
</td></tr>
654 <p><code class=
"directive">SSIAccessEnable
</code> ディレクティブを使って、
655 条件分岐フローの制御で -A 検査が使えるようにします。
656 <code class=
"directive">SSIAccessEnable
</code> は次の値を引数にとります:
</p>
660 <dt><code>off
</code></dt>
661 <dd><!--#if
expr=
"-A /foo"--
> では文字列や正規表現として
662 解釈され、-A は特別な意味は持ちません。
</dd>
664 <dt><code>on
</code></dt>
665 <dd><!--#if
expr=
"-A /foo"--
> では、設定上 URL /foo
666 にアクセスできない場合 false で、アクセスできる場合は true
</dd>
672 <div class=
"top"><a href=
"#page-header"><img alt=
"top" src=
"../images/up.gif" /></a></div>
673 <div class=
"directive-section"><h2><a name=
"SSIEndTag" id=
"SSIEndTag">SSIEndTag
</a> <a name=
"ssiendtag" id=
"ssiendtag">ディレクティブ
</a></h2>
674 <table class=
"directive">
675 <tr><th><a href=
"directive-dict.html#Description">説明:
</a></th><td>include 要素を終了させる文字列
</td></tr>
676 <tr><th><a href=
"directive-dict.html#Syntax">構文:
</a></th><td><code>SSIEndTag
<var>tag
</var></code></td></tr>
677 <tr><th><a href=
"directive-dict.html#Default">デフォルト:
</a></th><td><code>SSIEndTag
"-->"</code></td></tr>
678 <tr><th><a href=
"directive-dict.html#Context">コンテキスト:
</a></th><td>サーバ設定ファイル, バーチャルホスト
</td></tr>
679 <tr><th><a href=
"directive-dict.html#Status">ステータス:
</a></th><td>Base
</td></tr>
680 <tr><th><a href=
"directive-dict.html#Module">モジュール:
</a></th><td>mod_include
</td></tr>
681 <tr><th><a href=
"directive-dict.html#Compatibility">互換性:
</a></th><td>2.0.30 以降で利用可能
</td></tr>
683 <p>このディレクティブは
<code class=
"module"><a href=
"../mod/mod_include.html">mod_include
</a></code> が探す、
684 include 要素の終了を示す文字列を変更します。
</p>
686 <div class=
"example"><h3>例
</h3><p><code>
693 <li><code class=
"directive"><a href=
"#ssistarttag">SSIStartTag
</a></code></li>
696 <div class=
"top"><a href=
"#page-header"><img alt=
"top" src=
"../images/up.gif" /></a></div>
697 <div class=
"directive-section"><h2><a name=
"SSIErrorMsg" id=
"SSIErrorMsg">SSIErrorMsg
</a> <a name=
"ssierrormsg" id=
"ssierrormsg">ディレクティブ
</a></h2>
698 <table class=
"directive">
699 <tr><th><a href=
"directive-dict.html#Description">説明:
</a></th><td>SSI のエラーがあったときに表示されるエラーメッセージ
</td></tr>
700 <tr><th><a href=
"directive-dict.html#Syntax">構文:
</a></th><td><code>SSIErrorMsg
<var>message
</var></code></td></tr>
701 <tr><th><a href=
"directive-dict.html#Default">デフォルト:
</a></th><td><code>SSIErrorMsg
"[an error occurred while processing this
702 directive]"</code></td></tr>
703 <tr><th><a href=
"directive-dict.html#Context">コンテキスト:
</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
</td></tr>
704 <tr><th><a href=
"directive-dict.html#Override">上書き:
</a></th><td>All
</td></tr>
705 <tr><th><a href=
"directive-dict.html#Status">ステータス:
</a></th><td>Base
</td></tr>
706 <tr><th><a href=
"directive-dict.html#Module">モジュール:
</a></th><td>mod_include
</td></tr>
707 <tr><th><a href=
"directive-dict.html#Compatibility">互換性:
</a></th><td>バージョン
2.0.30 以降で使用可能
</td></tr>
709 <p><code class=
"directive">SSIErrorMsg
</code> ディレクティブは
<code class=
"module"><a href=
"../mod/mod_include.html">mod_include
</a></code>
710 がエラーが起こったときに表示するメッセージを変更します。プロダクションサーバでは
711 メッセージがユーザに表示されないようにするために
712 デフォルトエラーメッセージを
<code>"<!-- Error -->"</code>
713 に変えるというようなことを考えるかもしれません。
</p>
715 <p>このディレクティブは
<code><!--#config
716 errmsg=
<var>message
</var> --
></code> 要素と同じ効果になります。
</p>
718 <div class=
"example"><h3>例
</h3><p><code>
719 SSIErrorMsg
"<!-- Error -->"
723 <div class=
"top"><a href=
"#page-header"><img alt=
"top" src=
"../images/up.gif" /></a></div>
724 <div class=
"directive-section"><h2><a name=
"SSIStartTag" id=
"SSIStartTag">SSIStartTag
</a> <a name=
"ssistarttag" id=
"ssistarttag">ディレクティブ
</a></h2>
725 <table class=
"directive">
726 <tr><th><a href=
"directive-dict.html#Description">説明:
</a></th><td>include 要素を開始する文字列
</td></tr>
727 <tr><th><a href=
"directive-dict.html#Syntax">構文:
</a></th><td><code>SSIStartTag
<var>tag
</var></code></td></tr>
728 <tr><th><a href=
"directive-dict.html#Default">デフォルト:
</a></th><td><code>SSIStartTag
"<!--#"</code></td></tr>
729 <tr><th><a href=
"directive-dict.html#Context">コンテキスト:
</a></th><td>サーバ設定ファイル, バーチャルホスト
</td></tr>
730 <tr><th><a href=
"directive-dict.html#Status">ステータス:
</a></th><td>Base
</td></tr>
731 <tr><th><a href=
"directive-dict.html#Module">モジュール:
</a></th><td>mod_include
</td></tr>
732 <tr><th><a href=
"directive-dict.html#Compatibility">互換性:
</a></th><td>バージョン
2.0.30 以降で使用可能
</td></tr>
735 <p>このディレクティブは
<code class=
"module"><a href=
"../mod/mod_include.html">mod_include
</a></code> が探す、include
736 要素の開始を示す文字列を変更します。
</p>
738 <p>二つのサーバで (もしかすると別々の段階で) ファイルの出力を解析していて、
740 というようなときにこのオプションを使います。
</p>
742 <div class=
"example"><h3>例
</h3><p><code>
743 SSIStartTag
"<%"<br />
748 <code class=
"directive"><a href=
"#ssiendtag">SSIEndTag
</a></code> を併せて使うと、
749 下に示す例のように SSI ディレクティブを使えます:
</p>
751 <div class=
"example"><h3>違う開始と終了のタグを使った SSI ディレクティブ
</h3><p><code>
757 <li><code class=
"directive"><a href=
"#ssiendtag">SSIEndTag
</a></code></li>
760 <div class=
"top"><a href=
"#page-header"><img alt=
"top" src=
"../images/up.gif" /></a></div>
761 <div class=
"directive-section"><h2><a name=
"SSITimeFormat" id=
"SSITimeFormat">SSITimeFormat
</a> <a name=
"ssitimeformat" id=
"ssitimeformat">ディレクティブ
</a></h2>
762 <table class=
"directive">
763 <tr><th><a href=
"directive-dict.html#Description">説明:
</a></th><td>日付けを現す文字列の書式を設定する
</td></tr>
764 <tr><th><a href=
"directive-dict.html#Syntax">構文:
</a></th><td><code>SSITimeFormat
<var>formatstring
</var></code></td></tr>
765 <tr><th><a href=
"directive-dict.html#Default">デフォルト:
</a></th><td><code>SSITimeFormat
"%A, %d-%b-%Y %H:%M:%S %Z"</code></td></tr>
766 <tr><th><a href=
"directive-dict.html#Context">コンテキスト:
</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
</td></tr>
767 <tr><th><a href=
"directive-dict.html#Override">上書き:
</a></th><td>All
</td></tr>
768 <tr><th><a href=
"directive-dict.html#Status">ステータス:
</a></th><td>Base
</td></tr>
769 <tr><th><a href=
"directive-dict.html#Module">モジュール:
</a></th><td>mod_include
</td></tr>
770 <tr><th><a href=
"directive-dict.html#Compatibility">互換性:
</a></th><td>2.0.30 以降で使用可能
</td></tr>
772 <p>このディレクティブは
<code>DATE
</code> 環境変数を echo して日付を現す文字列が
773 表示されるときの書式を変更します。
<var>formatstring
</var> は
774 C 標準ライブラリの
<code>strftime(
3)
</code> と同じ形式です。
</p>
776 <p>このディレクティブは
<code><!--#config
777 timefmt=
<var>formatstring
</var> --
></code> 要素と同じ効果になります。
</p>
779 <div class=
"example"><h3>例
</h3><p><code>
780 SSITimeFormat
"%R, %B %d, %Y"
783 <p>上のディレクティブでは、日付は
"22:26, June 14, 2002" という
787 <div class=
"top"><a href=
"#page-header"><img alt=
"top" src=
"../images/up.gif" /></a></div>
788 <div class=
"directive-section"><h2><a name=
"SSIUndefinedEcho" id=
"SSIUndefinedEcho">SSIUndefinedEcho
</a> <a name=
"ssiundefinedecho" id=
"ssiundefinedecho">ディレクティブ
</a></h2>
789 <table class=
"directive">
790 <tr><th><a href=
"directive-dict.html#Description">説明:
</a></th><td>未定義の変数が echo されたときに表示される文字列
</td></tr>
791 <tr><th><a href=
"directive-dict.html#Syntax">構文:
</a></th><td><code>SSIUndefinedEcho
<var>string
</var></code></td></tr>
792 <tr><th><a href=
"directive-dict.html#Default">デフォルト:
</a></th><td><code>SSIUndefinedEcho
"(none)"</code></td></tr>
793 <tr><th><a href=
"directive-dict.html#Context">コンテキスト:
</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
</td></tr>
794 <tr><th><a href=
"directive-dict.html#Override">上書き:
</a></th><td>All
</td></tr>
795 <tr><th><a href=
"directive-dict.html#Status">ステータス:
</a></th><td>Base
</td></tr>
796 <tr><th><a href=
"directive-dict.html#Module">モジュール:
</a></th><td>mod_include
</td></tr>
797 <tr><th><a href=
"directive-dict.html#Compatibility">互換性:
</a></th><td>2.0.34 以降で利用可能
</td></tr>
799 <p>このディレクティブは変数が定義されていないにも関わらず
800 "echo" されたときに
<code class=
"module"><a href=
"../mod/mod_include.html">mod_include
</a></code>
803 <div class=
"example"><h3>例
</h3><p><code>
804 SSIUndefinedEcho
"<!-- undef -->"
808 <div class=
"top"><a href=
"#page-header"><img alt=
"top" src=
"../images/up.gif" /></a></div>
809 <div class=
"directive-section"><h2><a name=
"XBitHack" id=
"XBitHack">XBitHack
</a> <a name=
"xbithack" id=
"xbithack">ディレクティブ
</a></h2>
810 <table class=
"directive">
811 <tr><th><a href=
"directive-dict.html#Description">説明:
</a></th><td>実行ビットが設定されたファイルの SSI ディレクティブを
813 <tr><th><a href=
"directive-dict.html#Syntax">構文:
</a></th><td><code>XBitHack on|off|full
</code></td></tr>
814 <tr><th><a href=
"directive-dict.html#Default">デフォルト:
</a></th><td><code>XBitHack off
</code></td></tr>
815 <tr><th><a href=
"directive-dict.html#Context">コンテキスト:
</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
</td></tr>
816 <tr><th><a href=
"directive-dict.html#Override">上書き:
</a></th><td>Options
</td></tr>
817 <tr><th><a href=
"directive-dict.html#Status">ステータス:
</a></th><td>Base
</td></tr>
818 <tr><th><a href=
"directive-dict.html#Module">モジュール:
</a></th><td>mod_include
</td></tr>
820 <p><code class=
"directive">XBitHack
</code> ディレクティブは通常の HTML
821 ドキュメントの解析を制御します。このディレクティブは
<a class=
"glossarylink" href=
"../glossary.html#mime-type" title=
"用語集を参照">MIME タイプ
</a>
822 <code>text/html
</code> と関連付けられているファイルにのみ影響します。
823 <code class=
"directive">XBitHack
</code> は以下の値をとることができます。
</p>
826 <dt><code>off
</code></dt>
827 <dd>実行可能ファイルに対して特別な扱いをしません。
</dd>
829 <dt><code>on
</code></dt>
830 <dd>ユーザの実行ビットが設定されている
<code>text/html
</code>
831 ファイルは全てサーバで解析する html ドキュメントとして扱われます。
</dd>
833 <dt><code>full
</code></dt>
834 <dd><code>on
</code> と同様ですが、グループ実行ビットもテストします。
835 もしそれが設定されていれば、返されるファイルの
<code>Last-modified
</code> の
836 日付をファイルの最終修正時刻にします。それが設定されていないときは、
837 last-modified の日付は送られません。このビットを設定すると、
838 クライアントやプロキシがリクエストをキャッシュできるようになります。
840 <div class=
"note"><strong>注意
</strong> 他の CGI を
<code>#include
</code>
841 するかもしれないものや、各アクセスに対して違う出力を生成する
842 (もしくは後のリクエストで変わるかもしれないもの)
843 すべての SSI スクリプトに対してグループ実行ビットが
844 設定されていないことを確認できない場合は、full は使わない方が良い
852 <div class=
"bottomlang">
853 <p><span>言語:
</span><a href=
"../en/mod/mod_include.html" hreflang=
"en" rel=
"alternate" title=
"English"> en
</a> |
854 <a href=
"../ja/mod/mod_include.html" title=
"Japanese"> ja
</a></p>
855 </div><div id=
"footer">
856 <p class=
"apache">Copyright
2009 The Apache Software Foundation.
<br />Licensed under the
<a href=
"http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
2.0</a>.
</p>
857 <p class=
"menu"><a href=
"../mod/">モジュール
</a> |
<a href=
"../mod/directives.html">ディレクティブ
</a> |
<a href=
"../faq/">FAQ
</a> |
<a href=
"../glossary.html">用語
</a> |
<a href=
"../sitemap.html">サイトマップ
</a></p></div>