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="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
    23  <div id="path">
    24  <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.2</a> &gt; <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">&nbsp;en&nbsp;</a> |
    29  <a href="../ja/howto/ssi.html" title="Japanese">&nbsp;ja&nbsp;</a> |
    30  <a href="../ko/howto/ssi.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</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          &lt;!--#element attribute=value attribute=value ... --&gt;
   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          &lt;!--#echo var="DATE_LOCAL" --&gt;
   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          &lt;!--#config timefmt="%A %B %d, %Y" --&gt;<br />
   201          Today is &lt;!--#echo var="DATE_LOCAL" --&gt;
   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 &lt;!--#flastmod file="index.html" --&gt;
   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          &lt;!--#include virtual="/cgi-bin/counter.pl" --&gt;
   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          &lt;!--#config timefmt="%A %B %d, %Y" --&gt;<br />
   245          This file last modified &lt;!--#flastmod file="ssi.shtml" --&gt;
   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          &lt;!--#config timefmt="%D" --&gt;<br />
   256          This file last modified &lt;!--#echo var="LAST_MODIFIED" --&gt;
   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          &lt;!--#include virtual="/footer.html" --&gt;
   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          &lt;!--#config errmsg="[It appears that you don't know how to use SSI]" --&gt;
   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          &lt;pre&gt;<br />
   338          &lt;!--#exec cmd="ls" --&gt;<br />
   339          &lt;/pre&gt;
   340  </code></p></div>
   341  
   342      <p>Windows 上では、</p>
   343  <div class="example"><p><code>
   344          &lt;pre&gt;<br />
   345          &lt;!--#exec cmd="dir" --&gt;<br />
   346          &lt;/pre&gt;
   347  </code></p></div>
   348  
   349      <p>Windows 上では、このディレクティブによっていくつかの奇妙な
   350      書式に気づくでしょう。なぜなら <code>dir</code> の出力が文字列
   351      ``&lt;<code>dir</code>&gt;'' を含み、ブラウザを混乱させるからです。</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          &lt;!--#set var="name" value="Rich" --&gt;
   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          &lt;!--#set var="modified" value="$LAST_MODIFIED" --&gt;
   396  </code></p></div>
   397  
   398      <p>ドル記号 ($) を文字として変数の値に入れるには、
   399      バックスラッシュによってドル記号をエスケープする必要があります。</p>
   400  <div class="example"><p><code>
   401          &lt;!--#set var="cost" value="\$100" --&gt;
   402  </code></p></div>
   403  
   404      <p>最後になりますが、長い文字列の中に変数を置きたい場合で、
   405      変数名が他の文字とぶつかる可能性があり、
   406      それらの文字について混乱してしまう場合、この混乱を取り除くため、
   407      変数名を中括弧で囲むことができます
   408      (これについての良い例を示すのは難しいのですが、
   409      おそらく分かっていただけるでしょう)。
   410      </p>
   411  <div class="example"><p><code>
   412          &lt;!--#set var="date" value="${DATE_LOCAL}_${DATE_GMT}" --&gt;
   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      &lt;!--#if expr="test_condition" --&gt;<br />
   431      &lt;!--#elif expr="test_condition" --&gt;<br />
   432      &lt;!--#else --&gt;<br />
   433      &lt;!--#endif --&gt;
   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          &lt;!--#if expr="${Mac} &amp;&amp; ${InternetExplorer}" --&gt;<br />
   458          Apologetic text goes here<br />
   459          &lt;!--#else --&gt;<br />
   460          Cool JavaScript code goes here<br />
   461          &lt;!--#endif --&gt;
   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">&nbsp;en&nbsp;</a> |
   487  <a href="../ja/howto/ssi.html" title="Japanese">&nbsp;ja&nbsp;</a> |
   488  <a href="../ko/howto/ssi.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</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&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>
   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>