github.com/krum110487/go-htaccess@v0.0.0-20240316004156-60641c8e7598/tests/data/apache_2_2_34/manual/howto/ssi.html.ja.utf8 (about) 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 <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> 5 <!-- 6 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 7 This file is generated from xml source: DO NOT EDIT 8 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 9 --> 10 <title>Apache チュートリアル: Server Side Includes 入門 - Apache HTTP サーバ バージョン 2.2</title> 11 <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" /> 12 <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" /> 13 <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" /> 14 <script src="../style/scripts/prettify.min.js" type="text/javascript"> 15 </script> 16 17 <link href="../images/favicon.ico" rel="shortcut icon" /><link href="http://httpd.apache.org/docs/current/howto/ssi.html" rel="canonical" /></head> 18 <body id="manual-page"><div id="page-header"> 19 <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> 20 <p class="apache">Apache HTTP サーバ バージョン 2.2</p> 21 <img alt="" src="../images/feather.gif" /></div> 22 <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> 23 <div id="path"> 24 <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="../">バージョン 2.2</a> > <a href="./">How-To / チュートリアル</a></div><div id="page-content"><div class="retired"><h4>Please note</h4> 25 <p> This document refers to a legacy release (<strong>2.2</strong>) of Apache httpd. The active release (<strong>2.4</strong>) is documented <a href="http://httpd.apache.org/docs/current">here</a>. If you have not already upgraded, please follow <a href="http://httpd.apache.org/docs/current/upgrading.html">this link</a> for more information.</p> 26 <p>You may follow <a href="http://httpd.apache.org/docs/current/howto/ssi.html">this link</a> to go to the current version of this document.</p></div><div id="preamble"><h1>Apache チュートリアル: Server Side Includes 入門</h1> 27 <div class="toplang"> 28 <p><span>翻訳済み言語: </span><a href="../en/howto/ssi.html" hreflang="en" rel="alternate" title="English"> en </a> | 29 <a href="../ja/howto/ssi.html" title="Japanese"> ja </a> | 30 <a href="../ko/howto/ssi.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p> 31 </div> 32 <div class="outofdate">この日本語訳はすでに古くなっている 33 可能性があります。 34 最近更新された内容を見るには英語版をご覧下さい。 35 </div> 36 37 <p>サーバサイドインクルードによって、既存の HTML 38 ドキュメントに動的なコンテンツを追加することができます。</p> 39 </div> 40 <div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#related">はじめに</a></li> 41 <li><img alt="" src="../images/down.gif" /> <a href="#what">SSI とは ?</a></li> 42 <li><img alt="" src="../images/down.gif" /> <a href="#configuring">SSI を許可するためのサーバの設定</a></li> 43 <li><img alt="" src="../images/down.gif" /> <a href="#basic">基本的な SSI ディレクティブ</a></li> 44 <li><img alt="" src="../images/down.gif" /> <a href="#additionalexamples">追加の例</a></li> 45 <li><img alt="" src="../images/down.gif" /> <a href="#config">他に何が設定できるのか ?</a></li> 46 <li><img alt="" src="../images/down.gif" /> <a href="#exec">コマンドの実行</a></li> 47 <li><img alt="" src="../images/down.gif" /> <a href="#advanced">高度な SSI テクニック</a></li> 48 <li><img alt="" src="../images/down.gif" /> <a href="#conclusion">終わりに</a></li> 49 </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div> 50 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 51 <div class="section"> 52 <h2><a name="related" id="related">はじめに</a></h2> 53 <table class="related"><tr><th>関連モジュール</th><th>関連ディレクティブ</th></tr><tr><td><ul><li><code class="module"><a href="../mod/mod_include.html">mod_include</a></code></li><li><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code></li><li><code class="module"><a href="../mod/mod_expires.html">mod_expires</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/core.html#options">Options</a></code></li><li><code class="directive"><a href="../mod/mod_include.html#xbithack">XBitHack</a></code></li><li><code class="directive"><a href="../mod/mod_mime.html#addtype">AddType</a></code></li><li><code class="directive"><a href="../mod/core.html#setoutputfilter">SetOutputFilter</a></code></li><li><code class="directive"><a href="../mod/mod_setenvif.html#browsermatchnocase">BrowserMatchNoCase</a></code></li></ul></td></tr></table> 54 55 <p>この記事は、通常は単に SSI と呼ばれる Server Side Includes 56 を扱います。この記事においては、サーバでの SSI を許可するための設定と、 57 現在の HTML ページに動的なコンテンツを加えるためのいくつかの基本的な 58 SSI 技術を紹介します。</p> 59 60 <p>記事の後半では、SSI ディレクティブで SSI 61 と共に実行することができる条件文のような 62 幾分高度な事柄について述べています。</p> 63 64 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 65 <div class="section"> 66 <h2><a name="what" id="what">SSI とは ?</a></h2> 67 68 <p>SSI (Server Side Includes) は、HTML 69 ページ中に配置されるディレクティブであり、 70 サーバでページを提供する時に評価されます。SSI は、CGI 71 プログラムやその他の動的な技術で全てのページを提供せずに、 72 動的に生成されたコンテンツを現在の HTML ページに加えます。</p> 73 74 <p>どういう場合に SSI を使い、どういう場合にプログラムで 75 ページを完全に生成するかは、ページのうちどの程度が静的であり、 76 ページが提供されるたびに再計算する必要がどの程度あるかで通常は決定します。 77 SSI は現在時刻のような小さい情報を加えるにはうってつけの方法です。 78 しかし、そのページのほとんどの部分が提供時に生成される場合は、 79 他の方法を探す必要があります。</p> 80 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 81 <div class="section"> 82 <h2><a name="configuring" id="configuring">SSI を許可するためのサーバの設定</a></h2> 83 84 85 <p>サーバで SSI を許可するには、<code>httpd.conf</code> 86 ファイルまたは <code>.htaccess</code> 87 ファイルに次のディレクティブを指定する必要があります:</p> 88 <div class="example"><p><code> 89 Options +Includes 90 </code></p></div> 91 92 <p>この指定は、ファイルを SSI 93 ディレクティブで解析させることを許可するということを Apache 94 に伝えます。ほとんどの設定ではお互いを上書きできる、複数の 95 <code class="directive"><a href="../mod/core.html#options">Options</a></code> があることに 96 注意してください。おそらく、設定が最後に評価されることを 97 保証されるために、SSI を使用したいディレクトリに <code>Options</code> 98 ディレクティブを適用する必要があるでしょう。</p> 99 100 <p>全てのファイルが SSI 101 ディレクティブで解析されるというわけではありません。 102 どのファイルが解析されるかを Apache に伝える必要があります。 103 これを行なうには二つ方法があります。 104 次のディレクティブを使うことで、例えば <code>.shtml</code> 105 のような特別なファイル拡張子を持つファイルを解析するよう 106 Apache に伝えることができます:</p> 107 <div class="example"><p><code> 108 AddType text/html .shtml<br /> 109 AddOutputFilter INCLUDES .shtml 110 </code></p></div> 111 112 <p>この方法の欠点は、もし現在のページに SSI ディレクティブを加えたい場合、 113 それらのディレクティブが実行されるように 114 <code>.shtml</code> 拡張子にするため、そのページの名前と、 115 そのページへの全てのリンクを変更しなければならないことです。</p> 116 117 <p>もう一つの方法は、<code class="directive"><a href="../mod/mod_include.html#xbithack">XBitHack</a></code> 118 ディレクティブを使用することです:</p> 119 <div class="example"><p><code> 120 XBitHack on 121 </code></p></div> 122 123 <p><code class="directive"><a href="../mod/mod_include.html#xbithack">XBitHack</a></code> 124 は、ファイルの実行ビットが立っている場合、 125 SSI ディレクティブにより解析することを Apache に伝えます。 126 従って、SSI ディレクティブを現在のページに加えるためには、 127 ファイル名を変更しなくてもよく、単に <code>chmod</code> 128 を使用してファイルを実行可能にするだけで済みます。</p> 129 <div class="example"><p><code> 130 chmod +x pagename.html 131 </code></p></div> 132 133 <p>行なうべきではないことに関する短いコメント。時々誰かが、全ての 134 <code>.html</code> ファイルを SSI で解析するよう Apache に伝えれば、 135 わざわざ <code>.shtml</code> というファイル名にする必要がないといって 136 薦めるのを見ることでしょう。こういう人たちは、おそらく 137 <code class="directive"><a href="../mod/mod_include.html#xbithack">XBitHack</a></code> 138 について聞いたことがないのでしょう。 139 この方法について注意することは、たとえ SSI 140 ディレクティブを全く含まない場合でも、Apache がクライアントに 141 送る全てのファイルを最後まで読み込ませることになります。 142 この方法はかなり処理を遅くするものであり、良くないアイデアです。</p> 143 144 <p>もちろん、Windows ではそのような実行ビットをセット 145 するようなものはありませんのでオプションが少し制限されています。</p> 146 147 <p>デフォルトの設定では、Apache は SSI ページについて最終変更時刻や 148 コンテンツの長さを HTTP ヘッダに送りません。 149 動的なコンテンツであるため、それらの値を計算するのが難しいからです。 150 このためドキュメントがキャッシュされなくなり、 151 結果としてクライアントの性能が遅くなったように感じさせることになります。 152 これを解決する方法が二つあります:</p> 153 154 <ol> 155 <li><code>XBitHack Full</code> 設定を使用する。 156 この設定により、もともと要求されたファイルの時刻を参照し、 157 読み込まれるファイルの変更時刻を無視して最終変更時刻を決定するよう 158 Apache に伝えます。</li> 159 160 <li><a href="../mod/mod_expires.html">mod_expires</a> 161 で提供されているディレクティブを使用して、 162 ファイルが無効になる時刻を明示します。これにより、 163 ブラウザとプロキシにキャッシュが有効であることを通知します。</li> 164 </ol> 165 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 166 <div class="section"> 167 <h2><a name="basic" id="basic">基本的な SSI ディレクティブ</a></h2> 168 169 <p>SSI ディレクティブは以下の文法で記述します:</p> 170 <div class="example"><p><code> 171 <!--#element attribute=value attribute=value ... --> 172 </code></p></div> 173 174 <p>HTML のコメントのような書式をしているので、もし SSI 175 を正しく動作可能にしなければ、ブラウザはそれを無視するでしょう。 176 しかし、HTML ソース中では見えます。もし SSI を正しく設定したなら、 177 ディレクティブはその結果と置き換えられます。</p> 178 179 <p>element はたくさんあるものから一つ指定することができます。 180 指定できるものの大多数については、次回もう少し詳しく説明します。 181 ここでは、SSI で行なうことができる例をいくつか示します。</p> 182 183 <h3><a name="todaysdate" id="todaysdate">今日の日付</a></h3> 184 185 <div class="example"><p><code> 186 <!--#echo var="DATE_LOCAL" --> 187 </code></p></div> 188 189 <p><code>echo</code> 要素は単に変数の値を出力します。 190 CGI プログラムに利用可能な環境変数の全ての 191 セットを含む多くの標準変数があります。また、<code>set</code> 192 要素を用いることで、独自の変数を定義することができます。 193 </p> 194 195 <p>出力される日付の書式が好きではない場合、その書式を修正するために、 196 <code>config</code> 要素に <code>timefmt</code> 197 属性を使用することができます。</p> 198 199 <div class="example"><p><code> 200 <!--#config timefmt="%A %B %d, %Y" --><br /> 201 Today is <!--#echo var="DATE_LOCAL" --> 202 </code></p></div> 203 204 205 <h3><a name="lastmodified" id="lastmodified">ファイルの変更日</a></h3> 206 207 <div class="example"><p><code> 208 This document last modified <!--#flastmod file="index.html" --> 209 </code></p></div> 210 211 <p>この要素も <code>timefmt</code> 212 フォーマットの設定に従います。</p> 213 214 215 <h3><a name="cgi" id="cgi">CGI プログラムの結果を取り込む</a></h3> 216 217 <p>これは、全ての人のお気に入りである ``ヒットカウンタ'' のような 218 CGI プログラムの結果を出力する SSI 219 のより一般的な使用のうちの一つです。</p> 220 221 <div class="example"><p><code> 222 <!--#include virtual="/cgi-bin/counter.pl" --> 223 </code></p></div> 224 225 226 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 227 <div class="section"> 228 <h2><a name="additionalexamples" id="additionalexamples">追加の例</a></h2> 229 230 231 <p>以下は、SSI を使用して HTML 232 ドキュメントにおいてできることのいくつかの特別な例です。</p> 233 234 <h3><a name="docmodified" id="docmodified">いつこのドキュメントは修正されたのか 235 ?</a></h3> 236 237 <p>先に、ドキュメントが最後に変更されたのはいつかを 238 ユーザに通知するために SSI を使用することができることを述べました。 239 しかしながら、実際の方法は、いくぶん問題のままにしておきました。 240 HTML ドキュメントに配置された次のコードは、ページにそのような 241 タイムスタンプを入れるでしょう。もちろん、上述のように、 242 SSI を正しく動作可能にしておく必要があります。</p> 243 <div class="example"><p><code> 244 <!--#config timefmt="%A %B %d, %Y" --><br /> 245 This file last modified <!--#flastmod file="ssi.shtml" --> 246 </code></p></div> 247 248 <p>もちろん、<code>ssi.shtml</code> 249 の部分を実際の当該ファイル名と置き換える必要があります。 250 もし、あらゆるファイルに張ることができる一般的なコードを探しているなら、 251 これは不便であるかもしれません。おそらくその場合は、 252 そうする代わりに変数 <code>LAST_MODIFIED</code> 253 を使用したいと考えるでしょう:</p> 254 <div class="example"><p><code> 255 <!--#config timefmt="%D" --><br /> 256 This file last modified <!--#echo var="LAST_MODIFIED" --> 257 </code></p></div> 258 259 <p><code>timefmt</code> 260 書式についてのより詳細については、お好みの検索サイトに行き、 261 <code>strftime</code> で検索してみてください。文法は同じです。</p> 262 263 264 <h3><a name="standard-footer" id="standard-footer">標準のフッタを挿入する</a></h3> 265 266 267 <p>もし数ページを超えるページを持つサイトを管理しているならば、 268 全ページに対して変更を行なうことが本当に苦痛となり得ることが 269 分かるでしょう。全てのページに渡ってある種の標準的な外観を 270 維持しようとしているならば特にそうでしょう。</p> 271 272 <p>ヘッダやフッタ用の挿入用ファイルを使用することで、 273 このような更新にかかる負担を減らすことができます。 274 一つのフッタファイルを作成し、それを <code>include</code> 275 SSI コマンドで各ページに入れるだけで済みます。<code>include</code> 276 要素は、<code>file</code> 属性または <code>virtual</code> 277 属性のいずれかを使用してどのファイルを挿入するかを決めることができます。 278 <code>file</code> 属性は、<em>カレントディレクトリからの相対パスで示された 279 </em>ファイルパスです。 280 それは / で始まる絶対ファイルパスにはできず、また、そのパスの一部に ../ 281 を含むことができないことを意味します。<code>virtual</code> 282 属性は、おそらくより便利だと思いますが、提供するドキュメントからの相対 283 URL で指定すべきです。それは / で始めることができますが、 284 提供するファイルと同じサーバ上に存在しなくてはなりません。</p> 285 <div class="example"><p><code> 286 <!--#include virtual="/footer.html" --> 287 </code></p></div> 288 289 <p>私は最後の二つを組み合わせて、<code>LAST_MODIFIED</code> 290 ディレクティブをフッタファイルの中に置くことがよくあります。 291 SSI ディレクティブは、挿入用のファイルに含ませたり、 292 挿入ファイルのネストをしたりすることができます。すなわち、 293 挿入用のファイルは他のファイルを再帰的に挿入することができます。</p> 294 295 296 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 297 <div class="section"> 298 <h2><a name="config" id="config">他に何が設定できるのか ?</a></h2> 299 300 301 <p>時刻書式を <code>config</code> で設定できることに加えて、 302 更に二つ <code>config</code> で設定することができます。</p> 303 304 <p>通常、SSI ディレクティブで何かがうまくいかないときは、 305 次のメッセージが出力されます。</p> 306 <div class="example"><p><code> 307 [an error occurred while processing this directive] 308 </code></p></div> 309 310 <p>このメッセージを他のものにしたい場合、<code>config</code> 311 要素の <code>errmsg</code> 属性で変更することができます:</p> 312 <div class="example"><p><code> 313 <!--#config errmsg="[It appears that you don't know how to use SSI]" --> 314 </code></p></div> 315 316 <p>おそらく、エンドユーザはこのメッセージを決して見ることはありません。 317 なぜなら、そのサイトが生きた状態になる前に SSI ディレクティブに関する 318 全ての問題を解決しているはずだからです。(そうですよね?)</p> 319 320 <p>そして、<code>config</code> において <code>sizefmt</code> 321 属性を使用することで、 322 返されるファイルサイズの書式を設定することができます。 323 バイト数には <code>bytes</code> を、適当に Kb や Mb 324 に短縮させるには <code>abbrev</code> を指定することができます。</p> 325 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 326 <div class="section"> 327 <h2><a name="exec" id="exec">コマンドの実行</a></h2> 328 329 330 <p>今後数ヶ月のうちに、小さな CGI プログラムと SSI 331 を使用する記事を出したいと考えています。ここではそれとは別に、 332 <code>exec</code> 要素によって行なうことができることを示します。 333 SSI にシェル (正確には <code>/bin/sh</code>。Win32 ならば DOS シェル) 334 を使用してコマンドを実行させることができます。 335 下記の例では、ディレクトリリスト出力を行ないます。</p> 336 <div class="example"><p><code> 337 <pre><br /> 338 <!--#exec cmd="ls" --><br /> 339 </pre> 340 </code></p></div> 341 342 <p>Windows 上では、</p> 343 <div class="example"><p><code> 344 <pre><br /> 345 <!--#exec cmd="dir" --><br /> 346 </pre> 347 </code></p></div> 348 349 <p>Windows 上では、このディレクティブによっていくつかの奇妙な 350 書式に気づくでしょう。なぜなら <code>dir</code> の出力が文字列 351 ``<<code>dir</code>>'' を含み、ブラウザを混乱させるからです。</p> 352 353 <p>この機能は非常に危険であり、どんなコードでも <code>exec</code> 354 タグに埋め込まれてしまえば実行することに注意してください。例えば 355 `` ゲストブック '' のように、もし、 356 ユーザがページの内容を編集できる状況にあるならば、 357 この機能を確実に抑制してください。<code>Options</code> 358 ディレクティブの <code>IncludesNOEXEC</code> 引数を指定することで、 359 SSI は許可するけれど <code>exec</code> 360 機能は許可しないようにすることができます。</p> 361 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 362 <div class="section"> 363 <h2><a name="advanced" id="advanced">高度な SSI テクニック</a></h2> 364 365 366 <p>コンテンツを出力することに加え、Apache SSI は変数を設定し、 367 そして比較と条件分岐にその変数を使用できる機能を提供しています。 368 </p> 369 370 <h3><a name="caveat" id="caveat">警告</a></h3> 371 372 <p>この記事で述べた大部分の機能は、Apache 1.2 373 以降を使用している場合のみ利用可能です。もちろん、もし Apache 1.2 374 以降を使用してない場合、直ちにアップグレードする必要があります。 375 さぁ、今それを行ないなさい。それまで待っています。</p> 376 377 378 <h3><a name="variables" id="variables">変数を設定する</a></h3> 379 380 <p><code>set</code> ディレクティブを使用して、 381 後で使用するために変数を設定することができます。 382 これは後の説明で必要になるので、ここでそれについて述べています。 383 文法は以下のとおりです:</p> 384 <div class="example"><p><code> 385 <!--#set var="name" value="Rich" --> 386 </code></p></div> 387 388 <p>このように単純に文字どおりに設定することに加え、 389 <a href="../env.html">環境変数</a>や上記の変数 390 (例えば <code>LAST_MODIFIED</code> のような) 391 を含む他のあらゆる変数を値を設定するのに使用することができます。 392 変数名の前にドル記号 ($) を使用することで、 393 それがリテラル文字列ではなくて変数であることを示します。</p> 394 <div class="example"><p><code> 395 <!--#set var="modified" value="$LAST_MODIFIED" --> 396 </code></p></div> 397 398 <p>ドル記号 ($) を文字として変数の値に入れるには、 399 バックスラッシュによってドル記号をエスケープする必要があります。</p> 400 <div class="example"><p><code> 401 <!--#set var="cost" value="\$100" --> 402 </code></p></div> 403 404 <p>最後になりますが、長い文字列の中に変数を置きたい場合で、 405 変数名が他の文字とぶつかる可能性があり、 406 それらの文字について混乱してしまう場合、この混乱を取り除くため、 407 変数名を中括弧で囲むことができます 408 (これについての良い例を示すのは難しいのですが、 409 おそらく分かっていただけるでしょう)。 410 </p> 411 <div class="example"><p><code> 412 <!--#set var="date" value="${DATE_LOCAL}_${DATE_GMT}" --> 413 </code></p></div> 414 415 416 <h3><a name="conditional" id="conditional">条件式</a></h3> 417 418 419 <p>さて、変数を持っていて、 420 それらの値を設定して比較することができるのですから、 421 条件を表すためにそれらを使用することができます。これにより 422 SSI はある種の小さなプログラミング言語になっています。 423 <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> は条件を表現するために <code>if</code>, 424 <code>elif</code>, <code>else</code>, <code>endif</code> 425 構造を提供しています。これによって、 426 一つの実際のページから複数の論理ページを効果的に生成することができます。</p> 427 428 <p>条件構造は以下のとおりです:</p> 429 <div class="example"><p><code> 430 <!--#if expr="test_condition" --><br /> 431 <!--#elif expr="test_condition" --><br /> 432 <!--#else --><br /> 433 <!--#endif --> 434 </code></p></div> 435 436 <p><em>test_condition</em> 437 はあらゆる種類の論理的比較をすることができます。 438 値を比較したり、その値が ``真'' かどうかを評価します 439 (空でないなら与えられた文字列は真です)。 440 利用可能な比較演算子の全てのリストについては、 441 <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> ドキュメンテーションを参照してください。 442 ここでは、この構造をどう使用するかの例をいくつか示します。</p> 443 444 <p>設定ファイルで次の行を記述します:</p> 445 <div class="example"><p><code> 446 BrowserMatchNoCase macintosh Mac<br /> 447 BrowserMatchNoCase MSIE InternetExplorer 448 </code></p></div> 449 450 <p>これはクライアントが Macintosh 451 上でインターネットエクスプローラが動いている場合、環境変数 452 ``Mac'' と ``InternetExplorer'' を真と設定します。</p> 453 454 <p>次に、SSI が可能になったドキュメントで以下を行ないます: 455 </p> 456 <div class="example"><p><code> 457 <!--#if expr="${Mac} && ${InternetExplorer}" --><br /> 458 Apologetic text goes here<br /> 459 <!--#else --><br /> 460 Cool JavaScript code goes here<br /> 461 <!--#endif --> 462 </code></p></div> 463 464 <p>Mac 上の IE に対して何か思うところがあるわけでありません。 465 他では実行できているいくつかの JavaScript を Mac 上の IE 466 で実行させるのに、先週数時間苦労したというだけのことです。 467 上の例はその暫定的な対処方法です。</p> 468 469 <p>他のどんな変数 (あなたが定義するもの、 470 または普通の環境変数のいずれか) も、条件文に使用することができます。 471 Apache は <code>SetEnvIf</code> ディレクティブや他の関連 472 ディレクティブを使用して環境変数を設定することができます。 473 この機能により、CGI 474 に頼ることなくかなり複雑な動的なことをさせることができます。</p> 475 476 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 477 <div class="section"> 478 <h2><a name="conclusion" id="conclusion">終わりに</a></h2> 479 480 <p>SSI は確かに CGI 481 や動的なウェブページを生成する他の技術に代わるものではありません。 482 しかし、たくさんの余分な作業をせずに、 483 少量の動的なコンテンツを加えるにはすぐれた方法です。</p> 484 </div></div> 485 <div class="bottomlang"> 486 <p><span>翻訳済み言語: </span><a href="../en/howto/ssi.html" hreflang="en" rel="alternate" title="English"> en </a> | 487 <a href="../ja/howto/ssi.html" title="Japanese"> ja </a> | 488 <a href="../ko/howto/ssi.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p> 489 </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&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> 490 <script type="text/javascript"><!--//--><![CDATA[//><!-- 491 var comments_shortname = 'httpd'; 492 var comments_identifier = 'http://httpd.apache.org/docs/2.2/howto/ssi.html'; 493 (function(w, d) { 494 if (w.location.hostname.toLowerCase() == "httpd.apache.org") { 495 d.write('<div id="comments_thread"><\/div>'); 496 var s = d.createElement('script'); 497 s.type = 'text/javascript'; 498 s.async = true; 499 s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; 500 (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); 501 } 502 else { 503 d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); 504 } 505 })(window, document); 506 //--><!]]></script></div><div id="footer"> 507 <p class="apache">Copyright 2017 The Apache Software Foundation.<br />この文書は <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> のライセンスで提供されています。.</p> 508 <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[//><!-- 509 if (typeof(prettyPrint) !== 'undefined') { 510 prettyPrint(); 511 } 512 //--><!]]></script> 513 </body></html>