Current Path : /usr/local/apache22/share/doc/apache2/mod/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : //usr/local/apache22/share/doc/apache2/mod/core.html.ja.utf8 |
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"><head> <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> <!-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX This file is generated from xml source: DO NOT EDIT XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX --> <title>core - Apache HTTP サーバ バージョン 2.2</title> <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" /> <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" /> <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" /> <script src="../style/scripts/prettify.min.js" type="text/javascript"> </script> <link href="../images/favicon.ico" rel="shortcut icon" /><link href="http://httpd.apache.org/docs/current/mod/core.html" rel="canonical" /></head> <body> <div id="page-header"> <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> <p class="apache">Apache HTTP サーバ バージョン 2.2</p> <img alt="" src="../images/feather.gif" /></div> <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> <div id="path"> <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="./">モジュール</a></div> <div id="page-content"> <div class="retired"><h4>Please note</h4> <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> <p>You may follow <a href="http://httpd.apache.org/docs/current/mod/core.html">this link</a> to go to the current version of this document.</p></div><div id="preamble"><h1>Apache コア機能</h1> <div class="toplang"> <p><span>翻訳済み言語: </span><a href="../de/mod/core.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> | <a href="../en/mod/core.html" hreflang="en" rel="alternate" title="English"> en </a> | <a href="../fr/mod/core.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | <a href="../ja/mod/core.html" title="Japanese"> ja </a> | <a href="../tr/mod/core.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p> </div> <div class="outofdate">この日本語訳はすでに古くなっている 可能性があります。 最近更新された内容を見るには英語版をご覧下さい。 </div> <table class="module"><tr><th><a href="module-dict.html#Description">説明:</a></th><td>常に使用可能な Apache HTTP サーバのコア機能</td></tr> <tr><th><a href="module-dict.html#Status">ステータス:</a></th><td>Core</td></tr></table> </div> <div id="quickview"><h3 class="directives">ディレクティブ</h3> <ul id="toc"> <li><img alt="" src="../images/down.gif" /> <a href="#acceptfilter">AcceptFilter</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#acceptpathinfo">AcceptPathInfo</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#accessfilename">AccessFileName</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#adddefaultcharset">AddDefaultCharset</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#addoutputfilterbytype">AddOutputFilterByType</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#allowencodedslashes">AllowEncodedSlashes</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#allowoverride">AllowOverride</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#authname">AuthName</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#authtype">AuthType</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#cgimapextension">CGIMapExtension</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#contentdigest">ContentDigest</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#defaulttype">DefaultType</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#directory"><Directory></a></li> <li><img alt="" src="../images/down.gif" /> <a href="#directorymatch"><DirectoryMatch></a></li> <li><img alt="" src="../images/down.gif" /> <a href="#documentroot">DocumentRoot</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#enablemmap">EnableMMAP</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#enablesendfile">EnableSendfile</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#errordocument">ErrorDocument</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#errorlog">ErrorLog</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#fileetag">FileETag</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#files"><Files></a></li> <li><img alt="" src="../images/down.gif" /> <a href="#filesmatch"><FilesMatch></a></li> <li><img alt="" src="../images/down.gif" /> <a href="#forcetype">ForceType</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#gprofdir">GprofDir</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#hostnamelookups">HostnameLookups</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#httpprotocoloptions">HttpProtocolOptions</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#ifdefine"><IfDefine></a></li> <li><img alt="" src="../images/down.gif" /> <a href="#ifmodule"><IfModule></a></li> <li><img alt="" src="../images/down.gif" /> <a href="#include">Include</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#keepalive">KeepAlive</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#keepalivetimeout">KeepAliveTimeout</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#limit"><Limit></a></li> <li><img alt="" src="../images/down.gif" /> <a href="#limitexcept"><LimitExcept></a></li> <li><img alt="" src="../images/down.gif" /> <a href="#limitinternalrecursion">LimitInternalRecursion</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#limitrequestbody">LimitRequestBody</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#limitrequestfields">LimitRequestFields</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#limitrequestfieldsize">LimitRequestFieldSize</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#limitrequestline">LimitRequestLine</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#limitxmlrequestbody">LimitXMLRequestBody</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#location"><Location></a></li> <li><img alt="" src="../images/down.gif" /> <a href="#locationmatch"><LocationMatch></a></li> <li><img alt="" src="../images/down.gif" /> <a href="#loglevel">LogLevel</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#maxkeepaliverequests">MaxKeepAliveRequests</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#maxranges">MaxRanges</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#mergetrailers">MergeTrailers</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#namevirtualhost">NameVirtualHost</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#options">Options</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#protocol">Protocol</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#registerhttpmethod">RegisterHttpMethod</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#require">Require</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#rlimitcpu">RLimitCPU</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#rlimitmem">RLimitMEM</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#rlimitnproc">RLimitNPROC</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#satisfy">Satisfy</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#scriptinterpretersource">ScriptInterpreterSource</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#serveradmin">ServerAdmin</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#serveralias">ServerAlias</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#servername">ServerName</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#serverpath">ServerPath</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#serverroot">ServerRoot</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#serversignature">ServerSignature</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#servertokens">ServerTokens</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#sethandler">SetHandler</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#setinputfilter">SetInputFilter</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#setoutputfilter">SetOutputFilter</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#suexec">Suexec</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#timeout">TimeOut</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#traceenable">TraceEnable</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#usecanonicalname">UseCanonicalName</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#usecanonicalphysicalport">UseCanonicalPhysicalPort</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#virtualhost"><VirtualHost></a></li> </ul> <ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="AcceptFilter" id="AcceptFilter">AcceptFilter</a> <a name="acceptfilter" id="acceptfilter">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>プロトコルを Listen しているソケットの最適化を設定する</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>AcceptFilter <var>protocol</var> <var>accept_filter</var></code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> <tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>2.1.5 以降</td></tr> </table> <p>Listen しているソケットに対して、OS が固有に持っているプロトコルについての最適化を 有効にするディレクティブです。大前提となる条件は、データが受信されるか HTTP リクエスト全体がバッファされるかするまで、カーネルがサーバプロセスに ソケットを送らないようになっている、ということです。現在サポートされているのは、 <a href="http://www.freebsd.org/cgi/man.cgi?query=accept_filter&sektion=9"> FreeBSD の Accept Filter</a> と Linux のプリミティブな <code>TCP_DEFER_ACCEPT</code> のみです。</p> <p>FreeBSD のデフォルト値は :</p> <div class="example"><p><code> AcceptFilter http httpready <br /> AcceptFilter https dataready </code></p></div> <p><code>httpready</code> Accept Filter は HTTP リクエスト全体を、 カーネルレベルでバッファリングします。リクエスト全体を受信し終わると、 その後サーバプロセスにそれを送ります。詳細については <a href="http://www.freebsd.org/cgi/man.cgi?query=accf_http&sektion=9">accf_http(9)</a> を参照してください。HTTPS のリクエストは暗号化されているので <a href="http://www.freebsd.org/cgi/man.cgi?query=accf_data&sektion=9">accf_data(9)</a> フィルタのみが使用されます。</p> <p>Linux でのデフォルト値は :</p> <div class="example"><p><code> AcceptFilter http data <br /> AcceptFilter https data </code></p></div> <p>Linux の <code>TCP_DEFER_ACCEPT</code> は HTTP リクエストのバッファリングを サポートしていません。<code>none</code> 以外の値で <code>TCP_DEFER_ACCEPT</code> が有効になります。詳細については Linux man ページ <a href="http://homepages.cwi.nl/~aeb/linux/man2html/man7/tcp.7.html">tcp(7)</a> を参照してください。</p> <p>引数に <code>none</code> を指定すると、プロトコルに対する全ての Accept Filter が無効になります。<code>nntp</code> といった、先にサーバにデータを 送る必要のあるプロトコルに有効です :</p> <div class="example"><p><code>AcceptFilter nntp none</code></p></div> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="AcceptPathInfo" id="AcceptPathInfo">AcceptPathInfo</a> <a name="acceptpathinfo" id="acceptpathinfo">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>後に続くパス名情報を受け付けるリソースの指定</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>AcceptPathInfo On|Off|Default</code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>AcceptPathInfo Default</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>FileInfo</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> <tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>Apache 2.0.30 以降で使用可能</td></tr> </table> <p>このディレクティブは実際のファイル名 (もしくは存在するディレクトリの 存在しないファイル) の後に続くパス名情報があるリクエストを受け付けるか 拒否するかを制御します。続きのパス名情報はスクリプトには <code>PATH_INFO</code> 環境変数として利用可能になります。</p> <p>例えば、<code>/test/</code> が、<code>here.html</code> というファイル 一つのみがあるディレクトリを指しているとします。そうすると、 <code>/test/here.html/more</code> と <code>/test/nothere.html/more</code> へのリクエストは両方とも <code>/more</code> を <code>PATH_INFO</code> とします。</p> <p><code class="directive">AcceptPathInfo</code> ディレクティブに指定可能な 三つの引数は:</p> <dl> <dt><code>Off</code></dt><dd>リクエストは存在するパスにそのまま マップされる場合にのみ受け付けられます。ですから、上の例の <code>/test/here.html/more</code> のように、本当のファイル名の 後にパス名情報が続くリクエストには 404 NOT FOUND エラーが返ります。</dd> <dt><code>On</code></dt><dd>前の方のパスが存在するファイルにマップする場合は リクエストが受け付けられます。上の例の <code>/test/here.html/more</code> は <code>/test/here.html</code> が有効なファイルにマップすれば 受け付けられます。</dd> <dt><code>Default</code></dt><dd>続きのパス名情報の扱いはリクエストの <a href="../handler.html">ハンドラ</a>で決まります。 普通のファイルのためのコアハンドラのデフォルトは <code>PATH_INFO</code> を拒否します。 <a href="mod_cgi.html">cgi-script</a> や <a href="mod_isapi.html">isapi-handler</a> のようにスクリプトを扱うハンドラは 一般的にデフォルトで <code>PATH_INFO</code> を受け付けます。</dd> </dl> <p><code>AcceptPathInfo</code> の主な目的はハンドラの <code>PATH_INFO</code> を 受け付けるか拒否するかの選択を上書きできるようにすることです。 例えば、これは例えば <a href="mod_include.html">INCLUDES</a> のような <a href="../filter.html">フィルタ</a>を使って <code>PATH_INFO</code> に 基づいてコンテンツを生成しているときに必要になります。 コアハンドラでは通常拒否されるので、そういったスクリプトを動作させるには 次のような設定を使います。</p> <div class="example"><p><code> <Files "mypaths.shtml"><br /> <span class="indent"> Options +Includes<br /> SetOutputFilter INCLUDES<br /> AcceptPathInfo On<br /> </span> </Files> </code></p></div> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="AccessFileName" id="AccessFileName">AccessFileName</a> <a name="accessfilename" id="accessfilename">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>分散設定ファイルの名前</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>AccessFileName <var>filename</var> [<var>filename</var>] ...</code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>AccessFileName .htaccess</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p>リクエストを処理するとき、サーバはディレクトリに 対して分散設定ファイルが<a href="#allowoverride">有効になっていれば</a>、 そのドキュメントへの パス上にある全てのディレクトリから、ここで指定された名前の一覧の中で 最初に見つかったファイルをそれぞれ設定ファイルとして読み込みます。例えば:</p> <div class="example"><p><code> AccessFileName .acl </code></p></div> <p>という設定があると、以下のようにして無効にされていない限り、 ドキュメント <code>/usr/local/web/index.html</code> を返す前に、サーバは <code>/.acl</code>, <code>/usr/.acl</code>, <code>/usr/local/.acl</code>, <code>/usr/local/web/.acl</code> から ディレクティブを読み込みます。</p> <div class="example"><p><code> <Directory /><br /> <span class="indent"> AllowOverride None<br /> </span> </Directory> </code></p></div> <h3>参照</h3> <ul> <li><code class="directive"><a href="#allowoverride">AllowOverride</a></code></li> <li><a href="../configuring.html">設定ファイル</a></li> <li><a href="../howto/htaccess.html">.htaccess ファイル</a></li> </ul> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="AddDefaultCharset" id="AddDefaultCharset">AddDefaultCharset</a> <a name="adddefaultcharset" id="adddefaultcharset">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>レスポンスのコンテントタイプが <code>text/plain</code> あるいは <code>text/html</code> の場合に追加するデフォルトの charset パラメータ</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>AddDefaultCharset On|Off|<var>charset</var></code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>AddDefaultCharset Off</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>FileInfo</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p>レスポンスのコンテントタイプが <code>text/plain</code> あるいは <code>text/html</code> の場合に限りますが、レスポンスに追加するメディアタイプの文字セットパラメータ (文字エンコーディングの名前) のデフォルト値を、このディレクティブで指定します。 これはレスポンス <span class="transnote">(<em>訳注:</em> レスポンスの HTML)</span> 内で <code>META</code> 要素で指定された、どのような文字セットも無効にしますが、 最終的な挙動はユーザのクライアント側の設定で決まります。 この機能は <code>AddDefaultCharset Off</code> という設定で無効になります。 <code>AddDefaultCharset On</code> にすれば、 Apache 内部のデフォルト文字セット <code>iso-8859-1</code> に設定されます。 その他 <var>charset</var> に指定できる値であれば、どんな値でも使えます。 指定する値は、MIME メディアタイプとして使われる <a href="http://www.iana.org/assignments/character-sets">IANA に登録されている文字セット名</a>のうちの一つにすべきです。 例えば:</p> <div class="example"><p><code> AddDefaultCharset utf-8 </code></p></div> <p><code class="directive">AddDefaultCharset</code> を使うときは、全てのテキストリソースが 指定する文字エンコードになっていると分かっていて、かつ、 リソースの個々に文字セットを指定するのが大変な場合のみです。 例を挙げると、レガシーな CGI スクリプトなどの、動的に生成される コンテンツを含むリソースに文字セットパラメータを追加する場合で、 ユーザの入力データが出力に入り、クロスサイトスクリプティングが 引き起こされうる場合です。デフォルト文字セットをセットしたとしても、 ブラウザの "文字エンコードの自動選択" 機能が有効になっているユーザを 守ることにはならないので、もちろんより良い解決策は単にスクリプトを修正 (あるいは削除) することです。</p> <h3>参照</h3> <ul> <li><code class="directive"><a href="../mod/mod_mime.html#addcharset">AddCharset</a></code></li> </ul> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="AddOutputFilterByType" id="AddOutputFilterByType">AddOutputFilterByType</a> <a name="addoutputfilterbytype" id="addoutputfilterbytype">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>MIME-type に出力フィルタを割り当てる</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>AddOutputFilterByType <var>filter</var>[;<var>filter</var>...] <var>MIME-type</var> [<var>MIME-type</var>] ...</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>FileInfo</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> <tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>Apache 2.0.33 以降で使用可能。ただし 2.1 以降で非推奨。</td></tr> </table> <p>このディレクティブは応答の <a class="glossarylink" href="../glossary.html#mime-type" title="用語集を参照">MIME タイプ</a> に応じて出力<a href="../filter.html">フィルタ</a>を使用するようにします。 ただし下で説明される理由により、本ディレクティブは非推奨です。 同等の機能は <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code> で利用できます。</p> <p>次の例は <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> の <code>DEFLATE</code> フィルタを 使っています。<code>text/html</code> と <code>text/plain</code> の すべての出力 (静的なものも動的なものも) をクライアントに送られる前に 圧縮します。</p> <div class="example"><p><code> AddOutputFilterByType DEFLATE text/html text/plain </code></p></div> <p>複数のフィルタでコンテンツを処理させたいときは、それぞれの名前をセミコロンで 分ける必要があります。各フィルタに対して <code class="directive">AddOutputFilterByType</code> を一つずつ書くこともできます。</p> <p>次の例は <code>text/html</code> のスクリプトのすべての出力を まず <code>INCLUDES</code> フィルタで処理し、さらに <code>DEFLATE</code> フィルタにかけます。</p> <div class="example"><p><code> <Location /cgi-bin/><br /> <span class="indent"> Options Includes<br /> AddOutputFilterByType INCLUDES;DEFLATE text/html<br /> </span> </Location> </code></p></div> <div class="warning"><h3>注:</h3> <p><code class="directive">AddOutputFilterByType</code> ディレクティブにより 有効にしたフィルタは場合によっては、部分的もしくは完全に適用されないことが あります。例えば、<a class="glossarylink" href="../glossary.html#mime-type" title="用語集を参照">MIME タイプ</a> が決定できないときには <code class="directive"><a href="#defaulttype">DefaultType</a></code> の設定が同じだったとしても、 <code class="directive"><a href="#defaulttype">DefaultType</a></code> 設定を使うようになります。</p> <p>しかし、確実にフィルタが適用されるようにしたいときは、リソースに 明示的にコンテントタイプを割り当てることができます。これには例えば <code class="directive"><a href="../mod/mod_mime.html#addtype">AddType</a></code> ディレクティブや <code class="directive"><a href="#forcetype">ForceType</a></code> ディレクティブを使います。 (nphでない) CGI スクリプトでコンテントタイプを設定するというものでも 大丈夫です。</p> </div> <h3>参照</h3> <ul> <li><code class="directive"><a href="../mod/mod_mime.html#addoutputfilter">AddOutputFilter</a></code></li> <li><code class="directive"><a href="#setoutputfilter">SetOutputFilter</a></code></li> <li><a href="../filter.html">フィルタ</a></li> </ul> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="AllowEncodedSlashes" id="AllowEncodedSlashes">AllowEncodedSlashes</a> <a name="allowencodedslashes" id="allowencodedslashes">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>URL 中の符号化されたパス分離文字が先に伝えられるのを許可するかどうかを 決定する</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>AllowEncodedSlashes On|Off</code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>AllowEncodedSlashes Off</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> <tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>Apache 2.0.46 以降で使用可能</td></tr> </table> <p><code class="directive">AllowEncodedSlashes</code> ディレクティブは符号化された パス分離文字 (<code>/</code> は <code>%2F</code>、さらにシステムによっては <code>\</code> に対応する <code>%5C</code>) が存在する URL の使用を 許可するかどうかを決定します。通常はそのような URL は 404 (Not found) エラー で拒否されます。</p> <p><code class="directive">AllowEncodedSlashes</code> <code>On</code> による パス分離文字の使用は、<code>PATH_INFO</code> と合わせて 使うときに一番役に立ちます。</p> <div class="note"><h3>注</h3> <p>符号化されたスラッシュを許可することは、<em>復号</em>をすることを 意味<em>しません</em>。<code>%2F</code> や (関係するシステムでの) <code>%5C</code> は、他の部分が復号された URL の中でもそのままの形式で 残されます。</p> </div> <h3>参照</h3> <ul> <li><code class="directive"><a href="#acceptpathinfo">AcceptPathInfo</a></code></li> </ul> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="AllowOverride" id="AllowOverride">AllowOverride</a> <a name="allowoverride" id="allowoverride">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td><code>.htaccess</code> で許可されるディレクティブの種類</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>AllowOverride All|None|<var>directive-type</var> [<var>directive-type</var>] ...</code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>AllowOverride All</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>ディレクトリ</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p>サーバが (<code class="directive"><a href="#accessfilename">AccessFileName</a></code> によって指定された) <code>.htaccess</code> ファイルを見つけた時、そのファイルの中で 宣言されたどのディレクティブがより前に定義された設定ディレクティブを 上書きできるかを知る必要があります。</p> <div class="note"><h3><Directory> セクションでのみ使用可能</h3> <code class="directive">AllowOverride</code> は正規表現無しの<code class="directive"><a href="#directory"><Directory></a></code> セクションでのみ有効で、<code class="directive"><a href="#location"><Location></a></code> や <code class="directive"><a href="#directorymatch"><DirectoryMatch></a></code> や <code class="directive"><a href="#files"><Files></a></code> セクションでは無効です。 </div> <p>このディレクティブを <code>None</code> に設定すると、<a href="#accessfilename">.htaccess</a> ファイルは完全に 無視されます。 この場合、サーバはファイルシステムの <code>.htaccess</code> ファイルを読むことを 試みさえしません。</p> <p>このディレクティブが <code>All</code> に設定されている時には、 <code>.htaccess</code> という <a href="directive-dict.html#Context">コンテキスト</a> を持つ 全てのディレクティブが利用できます。</p> <p><var>directive-type</var> には、以下のディレクティブ群の キーワードのどれかを指定します。</p> <dl> <dt>AuthConfig</dt> <dd> 認証に関するディレクティブの使用を許可する (<code class="directive"><a href="../mod/mod_authn_dbm.html#authdbmgroupfile">AuthDBMGroupFile</a></code>, <code class="directive"><a href="../mod/mod_authn_dbm.html#authdbmuserfile">AuthDBMUserFile</a></code>, <code class="directive"><a href="../mod/mod_authz_groupfile.html#authgroupfile">AuthGroupFile</a></code>, <code class="directive"><a href="#authname">AuthName</a></code>, <code class="directive"><a href="#authtype">AuthType</a></code>, <code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code>, <code class="directive"><a href="#require">Require</a></code> <em>など</em>)。</dd> <dt>FileInfo</dt> <dd> ドキュメントタイプを制御するディレクティブ (<code class="directive"><a href="#defaulttype">DefaultType</a></code>, <code class="directive"><a href="#errordocument">ErrorDocument</a></code>, <code class="directive"><a href="#forcetype">ForceType</a></code>, <code class="directive"><a href="../mod/mod_negotiation.html#languagepriority">LanguagePriority</a></code>, <code class="directive"><a href="#sethandler">SetHandler</a></code>, <code class="directive"><a href="#setinputfilter">SetInputFilter</a></code>, <code class="directive"><a href="#setoutputfilter">SetOutputFilter</a></code>, <code class="module"><a href="../mod/mod_mime.html">mod_mime</a></code> の Add* と Remove* ディレクティブ<em>など</em>)、 ドキュメントのメタデータを制御するディレクティブ (<code class="directive"><a href="../mod/mod_headers.html#header">Header</a></code>, <code class="directive"><a href="../mod/mod_headers.html#requestheader">RequestHeader</a></code>, <code class="directive"><a href="../mod/mod_setenvif.html#setenvif">SetEnvIf</a></code>, <code class="directive"><a href="../mod/mod_setenvif.html#setenvifnocase">SetEnvIfNoCase</a></code>, <code class="directive"><a href="../mod/mod_setenvif.html#browsermatch">BrowserMatch</a></code>, <code class="directive"><a href="../mod/mod_usertrack.html#cookieexpires">CookieExpires</a></code>, <code class="directive"><a href="../mod/mod_usertrack.html#cookiedomain">CookieDomain</a></code>, <code class="directive"><a href="../mod/mod_usertrack.html#cookiestyle">CookieStyle</a></code>, <code class="directive"><a href="../mod/mod_usertrack.html#cookietracking">CookieTracking</a></code>, <code class="directive"><a href="../mod/mod_usertrack.html#cookiename">CookieName</a></code>), <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> のディレクティブ <code class="directive"><a href="../mod/mod_rewrite.html#rewriteengine">RewriteEngine</a></code>, <code class="directive"><a href="../mod/mod_rewrite.html#rewriteoptions">RewriteOptions</a></code>, <code class="directive"><a href="../mod/mod_rewrite.html#rewritebase">RewriteBase</a></code>, <code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">RewriteCond</a></code>, <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code>) と <code class="module"><a href="../mod/mod_actions.html">mod_actions</a></code> の <code class="directive"><a href="../mod/mod_actions.html#action">Action</a></code> ディレクティブの使用を許可する。</dd> <dt>Indexes</dt> <dd> ディレクトリインデックスを制御するためのディレクティブの使用を許可する (<code class="directive"><a href="../mod/mod_autoindex.html#adddescription">AddDescription</a></code>, <code class="directive"><a href="../mod/mod_autoindex.html#addicon">AddIcon</a></code>, <code class="directive"><a href="../mod/mod_autoindex.html#addiconbyencoding">AddIconByEncoding</a></code>, <code class="directive"><a href="../mod/mod_autoindex.html#addiconbytype">AddIconByType</a></code>, <code class="directive"><a href="../mod/mod_autoindex.html#defaulticon">DefaultIcon</a></code>, <code class="directive"><a href="../mod/mod_dir.html#directoryindex">DirectoryIndex</a></code>, <code class="directive"><a href="../mod/mod_autoindex.html#fancyindexing">FancyIndexing</a></code>, <code class="directive"><a href="../mod/mod_autoindex.html#headername">HeaderName</a></code>, <code class="directive"><a href="../mod/mod_autoindex.html#indexignore">IndexIgnore</a></code>, <code class="directive"><a href="../mod/mod_autoindex.html#indexoptions">IndexOptions</a></code>, <code class="directive"><a href="../mod/mod_autoindex.html#readmename">ReadmeName</a></code> <em>など</em>)。</dd> <dt>Limit</dt> <dd> ホストへのアクセス制御を行うためのディレクティブの使用を許可する (<code class="directive"><a href="../mod/mod_authz_host.html#allow">Allow</a></code>, <code class="directive"><a href="../mod/mod_authz_host.html#deny">Deny</a></code>, <code class="directive"><a href="../mod/mod_authz_host.html#order">Order</a></code>).</dd> <dt>Options[=<var>Option</var>,...]</dt> <dd> 特定のディレクトリにおける機能を指定するためのディレクティブの使用を許可する (<code class="directive"><a href="#options">Options</a></code> と <code class="directive"><a href="../mod/mod_include.html#xbithack">XBitHack</a></code>)。 <code class="directive"><a href="#options">Options</a></code> で設定するオプション を、(空白を含めない) コンマ区切りのリストにして等号の後に続けることで 設定できます。</dd> </dl> <p>例:</p> <div class="example"><p><code> AllowOverride AuthConfig Indexes </code></p></div> <p>上の例では <code>AuthConfig</code> と <code>Indexes</code> のどちらにも 属さないディレクティブはすべて内部サーバエラーを引き起こします。</p> <h3>参照</h3> <ul> <li><code class="directive"><a href="#accessfilename">AccessFileName</a></code></li> <li><a href="../configuring.html">設定ファイル</a></li> <li><a href="../howto/htaccess.html">.htaccess ファイル</a></li> </ul> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="AuthName" id="AuthName">AuthName</a> <a name="authname" id="authname">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>HTTP 認証の認可領域 (訳注: realm)</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>AuthName <var>auth-domain</var></code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>ディレクトリ, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>AuthConfig</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p>このディレクティブはディレクトリに対する認可領域 (訳注: realm) の名前を指定します。 認可領域は、利用者がどのユーザ名とパスワードを送信すればよいのかを クライアントに教えるために利用します。 <code class="directive">AuthName</code> は一つの引数をとり、 スペースが含まれる場合には、 引用符で括らなければなりません。 このディレクティブは <code class="directive"><a href="#authtype">AuthType</a></code> ディレクティブや <code class="directive"><a href="#require">Require</a></code> ディレクティブと、 <code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code> や <code class="directive"><a href="../mod/mod_authz_groupfile.html#authgroupfile">AuthGroupFile</a></code> などのディレクティブと 一緒に利用する必要があります。</p> <p>例えば:</p> <div class="example"><p><code> AuthName "Top Secret" </code></p></div> <p>ここで <code>AuthName</code> に指定した文字列が、 大部分のブラウザのパスワードダイアログに表示されます。</p> <h3>参照</h3> <ul> <li><a href="../howto/auth.html">認証、承認、アクセス制御</a></li> </ul> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="AuthType" id="AuthType">AuthType</a> <a name="authtype" id="authtype">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>ユーザ認証の種類</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>AuthType Basic|Digest</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>ディレクトリ, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>AuthConfig</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p>このディレクティブは対象ディレクトリで利用するユーザー認証の種類を選びます。 使用できる認証方式は <code>Basic</code> (<code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> で実装) と <code>Digest</code> (<code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code> で実装) です。</p> <p>認証を有効にするには、<code class="directive"><a href="#authname">AuthName</a></code> と <code class="directive"><a href="#require">Require</a></code> ディレクティブも 使う必要があります。それに加えて認証プロバイダモジュールの <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code> 等と、承認モジュール <code class="module"><a href="../mod/mod_authz_user.html">mod_authz_user</a></code> 等もサーバに組み込む必要があります。</p> <h3>参照</h3> <ul> <li><a href="../howto/auth.html">認証、承認、アクセス制御</a></li> </ul> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="CGIMapExtension" id="CGIMapExtension">CGIMapExtension</a> <a name="cgimapextension" id="cgimapextension">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>CGI スクリプトのインタープリタの位置を調べるための手法</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>CGIMapExtension <var>cgi-path</var> <var>.extension</var></code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>ディレクトリ, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>FileInfo</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> <tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>NetWare のみ</td></tr> </table> <p>このディレクティブは Apache が CGI スクリプトを実行するための インタープリタを探す方法を制御します。 例えば、<code>CGIMapExtension sys:\foo.nlm .foo</code> と設定すると <code>.foo</code> という拡張子のすべての CGI スクリプトは FOO インタープリタに 渡されます。</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="ContentDigest" id="ContentDigest">ContentDigest</a> <a name="contentdigest" id="contentdigest">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td><code>Content-MD5</code> HTTP 応答ヘッダの生成を有効にする</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>ContentDigest On|Off</code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>ContentDigest Off</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>Options</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p>このディレクティブは、RFC1864 及び RFC2616 において定義されている <code>Content-MD5</code> ヘッダーの生成を有効にします。</p> <p>MD5 は、任意長のデータの「メッセージダイジェスト」(「指紋」 と表現されることもある) を計算するアルゴリズムで、 データの変更があった場合には非常に高い信頼度でメッセージダイジェストに変更が 反映されます。</p> <p><code>Content-MD5</code> ヘッダは、エンドツーエンドで エンティティボディーに含まれるメッセージの完全性チェック (Message Integrity Check - MIC)を提供します。 このヘッダを調べることで、プロキシやクライアントは、 途中経路におけるエンティティボディの予期せぬ変更などを 検出することができます。ヘッダの例:</p> <div class="example"><p><code> Content-MD5: AuLb7Dp1rqtRtxz2m9kRpA== </code></p></div> <p>リクエスト毎にメッセージダイジェストを計算する (値はキャッシュされません) ことから、 サーバパフォーマンスが低下することについて注意してください。</p> <p><code>Content-MD5</code>は、<code class="module"><a href="../mod/core.html">core</a></code> 機能により処理された ドキュメントを送るときのみ有効であり、 SSI ドキュメントや CGI スクリプトの出力、バイトレンジを指定した 応答の場合にはこのヘッダは付与されません。 </p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="DefaultType" id="DefaultType">DefaultType</a> <a name="defaulttype" id="defaulttype">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>サーバがコンテントタイプを決定できないときに 送られる MIME コンテントタイプ</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DefaultType <var>MIME-type|none</var></code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>DefaultType text/plain</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>FileInfo</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p>サーバは、<a class="glossarylink" href="../glossary.html#mime-type" title="用語集を参照">MIME タイプ</a> のマッピングでは決定できない ドキュメントの送信を要求されることがあります。</p> <p>サーバは、ドキュメントのコンテントタイプをクライアントに通知するべき(SHOULD)です。 もし通常の方法ではコンテントタイプが分からない場合は、 <code>DefaultType</code> で指定されたタイプを利用します。 例:</p> <div class="example"><p><code> DefaultType image/gif </code></p></div> <p>これは <code>.gif</code> という拡張子がファイル名に含まれていない 多くの GIF 画像が含まれているディレクトリに適しているでしょう。</p> <p>サーバ側でも管理者側(たとえば proxy)でもコンテントタイプが分からない場合で、 MIME タイプの情報が誤ってついているかもしれないぐらいであればむしろ無いほうがよい、 という場合もあるでしょう。このような場合は、次のようにします。</p> <div class="example"><p><code> DefaultType None </code></p></div> <p>DefaultType None は httpd-2.2.7 以降で使えます。</p> <p><code class="directive"><a href="#forcetype">ForceType</a></code> ディレクティブと 違って、このディレクティブはデフォルトの MIME タイプを提供するだけで あることに注意してください。ファイル名の拡張子を含め、 メディアタイプを決定できる他の MIME タイプの定義があれば このデフォルトは上書きされます。</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="Directory" id="Directory"><Directory></a> <a name="directory" id="directory">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>指定のファイルシステムのディレクトリとサブディレクトリとのみに 適用されるディレクティブを囲む</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code><Directory <var>directory-path</var>> ... </Directory></code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p>指定されたディレクトリとそのサブディレクトリにのみ ディレクティブを適用させるためには、 <code class="directive"><Directory></code> と <code></Directory></code> を対として、ディレクティブ群を囲います。 その中には、ディレクトリコンテキストで許可された全てのディレクティブを 利用できます。 <var>directive-path</var> は、フルパスもしくは Unix のシェル形式の ワイルドカードを指定します。 <code>?</code> は任意の 1 文字、<code>*</code> は任意の文字列にマッチします。 シェルにおける指定同様、文字の範囲を <code>[]</code> で指定できます。 ワイルドカードは `/' 文字にはマッチしませんので、 <code>/home/user/public_html</code> には <code><Directory /*/public_html></code> はマッチしませんが、 <code><Directory /home/*/public_html></code> はマッチします。 例:</p> <div class="example"><p><code> <Directory /usr/local/httpd/htdocs><br /> <span class="indent"> Options Indexes FollowSymLinks<br /> </span> </Directory> </code></p></div> <div class="note"> <p><var>directory-path</var> 引数には注意してください: その引数は Apache がファイルをアクセスするために使うファイルシステムのパスに そのままマッチする必要があります。ある <code><Directory></code> に 適用されるディレクティブは、別のシンボリックリンクをたどったりして 同じディレクトリを違うパスでアクセスした場合には適用されません。</p> </div> <p><code>~</code> という文字を 付加することで<a class="glossarylink" href="../glossary.html#regex" title="用語集を参照">正規表現</a>を利用することもできます。 例えば:</p> <div class="example"><p><code> <Directory ~ "^/www/.*/[0-9]{3}"> </code></p></div> <p>といった指定の場合、<code>/www/</code> 以下にある数字 3 文字のディレクトリにマッチします。</p> <p>もし複数の (正規表現以外の) <code class="directive"><Directory></code>セクションが ドキュメントを含むディレクトリ (やその上位ディレクトリのどれか) とマッチしたならば、 <a href="#accessfilename">.htaccess</a> ファイルのディレクティブも読み込みつつ、 短いパスから順に適用されます。 例えば、</p> <div class="example"><p><code> <Directory /><br /> <span class="indent"> AllowOverride None<br /> </span> </Directory><br /> <br /> <Directory /home/><br /> <span class="indent"> AllowOverride FileInfo<br /> </span> </Directory> </code></p></div> <p>と設定し、ドキュメント <code>/home/web/dir/doc.html</code> への アクセスがあった場合には以下のように動作します:</p> <ul> <li><code>AllowOverride None</code> が適用される。 (<code>.htaccess</code> ファイルは無効になる)</li> <li><code>AllowOverride FileInfo</code> が適用される (<code>/home</code> ディレクトリに対して)。</li> <li><code>/home/.htaccess</code>, <code>/home/web/.htaccess</code>, <code>/home/web/dir/.htaccess</code> の順にそれらのファイル中の FileInfo ディレクティブが適用される。</li> </ul> <p>正規表現は、通常のセクションがすべて適用されるまで 考慮されません。 その後、全ての正規表現が設定ファイルに現れた順で試されます。 例えば、以下のような場合に</p> <div class="example"><p><code> <Directory ~ abc$><br /> <span class="indent"> # ... directives here ...<br /> </span> </Directory> </code></p></div> <p>正規表現のセクションはすべての通常の <code class="directive"><Directory></code> と <code>.htaccess</code> の適用が終わるまで考慮されません。 その後で、正規表現は <code>/home/abc/public_html/abc</code> にマッチし、 対応する <code class="directive"><Directory></code> が適用されます。</p> <p><strong>Apache のデフォルトでは <code><Directory /></code> へのアクセスは <code>Allow from All</code> になっていることに注意してください。 これは、URL からマップされたどのファイルでも Apache は送るということです。 これは以下のようにして変更することが推奨されています。</strong></p> <div class="example"><p><code> <Directory /><br /> <span class="indent"> Order Deny,Allow<br /> Deny from All<br /> </span> </Directory> </code></p></div> <p><strong>そしてアクセスを<em>可能にしたい</em>ディレクトリに対して 個別に設定すればよいでしょう。 このあたりについては、<a href="../misc/security_tips.html">セキュリティに関するコツ</a>を 参照してください。</strong></p> <p>ディレクトリセクションは <code>httpd.conf</code> ファイル書きます。 <code class="directive"><Directory></code> ディレクティブは入れ子にすることができず、 <code class="directive"><a href="#limit"><Limit></a></code> や <code class="directive"><a href="#limitexcept"><LimitExcept></a></code> セクションの中にも 記述できません。</p> <h3>参照</h3> <ul> <li>リクエストを受けた際にこれらの異なるセクションが 組み合わされる方法については <a href="../sections.html"> <Directory>, <Location>, <Files> セクションの動作法</a></li> </ul> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="DirectoryMatch" id="DirectoryMatch"><DirectoryMatch></a> <a name="directorymatch" id="directorymatch">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>正規表現にマッチするファイルシステムのディレクトリと サブディレクトリとのみに適用されるディレクティブを囲む</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code><DirectoryMatch <var>regex</var>> ... </DirectoryMatch></code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p><code class="directive"><a href="#directory"><Directory></a></code> ディレクティブと同様に、<code class="directive"><DirectoryMatch></code> と <code></DirectoryMatch></code> は指定されたディレクトリと そのサブディレクトリにのみ適用されるディレクティブ群を囲います。 しかし、このディレクティブは引数として<a class="glossarylink" href="../glossary.html#regex" title="用語集を参照">正規表現</a>をとります。例えば:</p> <div class="example"><p><code> <DirectoryMatch "^/www/(.+/)?[0-9]{3}"> </code></p></div> <p>は <code>/www/</code> 以下にある数字 3 文字のディレクトリにマッチします。</p> <h3>参照</h3> <ul> <li>通常の <code class="directive"><Directory></code> と正規表現の指定が 適用される順番については <code class="directive"><a href="#directory"><Directory></a></code></li> <li>リクエストを受けた際にこれらの異なるセクションが 組み合わされる方法については <a href="../sections.html"> <Directory>, <Location>, <Files> セクションの動作法</a></li> </ul> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="DocumentRoot" id="DocumentRoot">DocumentRoot</a> <a name="documentroot" id="documentroot">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>ウェブから見えるメインのドキュメントツリーになる ディレクトリ</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DocumentRoot <var>directory-path</var></code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>DocumentRoot /usr/local/apache/htdocs</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p>このディレクティブは、<code class="program"><a href="../programs/httpd.html">httpd</a></code> がファイルを提供するディレクトリを設定します。 <code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code> のようなディレクティブにマッチしない場合には、 ドキュメントの (訳注:ファイルシステム上の) パスを生成するために、 リクエストされた URL のパス部分をドキュメントルートに付与します。 例:</p> <div class="example"><p><code> DocumentRoot /usr/web </code></p></div> <p>この場合、 <code>http://www.my.host.com/index.html</code> へのアクセスがあれば <code>/usr/web/index.html</code> が返されます。 <var>directory-path</var> が絶対パスでない場合は、 <code class="directive"><a href="#serverroot">ServerRoot</a></code> からの相対パスとみなされます。</p> <p><code class="directive">DocumentRoot</code> は最後のスラッシュ無しで 指定する必要があります。</p> <h3>参照</h3> <ul> <li><a href="../urlmapping.html">URL をファイルシステムの位置に マップする</a></li> </ul> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="EnableMMAP" id="EnableMMAP">EnableMMAP</a> <a name="enablemmap" id="enablemmap">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>配送中にファイルを読み込むためにメモリマッピングを 使うかどうか</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>EnableMMAP On|Off</code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>EnableMMAP On</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>FileInfo</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p>このディレクティブは配送中にファイルの内容を読み込む必要があるときに <code class="program"><a href="../programs/httpd.html">httpd</a></code> がメモリマッピングを使うかどうかを制御します。 デフォルトでは、 例えば、<code class="module"><a href="../mod/mod_include.html">mod_include</a></code> を使って SSI ファイルを配送 するときのように、ファイルの途中のデータをアクセスする必要があるときには Apache は OS がサポートしていればファイルをメモリにマップします。</p> <p> このメモリマップは性能の向上をもたらすことがあります。 しかし、環境によっては運用上の問題を防ぐためにメモリマッピングを 使用しないようにした方が良い場合もあります:</p> <ul> <li>マルチプロセッサシステムの中にはメモリマッピングをすると <code class="program"><a href="../programs/httpd.html">httpd</a></code> の性能が落ちるものがあります。</li> <li>NFS マウントされた <code class="directive"><a href="#documentroot">DocumentRoot</a></code> では、<code class="program"><a href="../programs/httpd.html">httpd</a></code> がメモリマップしている間にファイルが削除されたり 短くなったりしたときに起こるセグメンテーションフォールトのために <code class="program"><a href="../programs/httpd.html">httpd</a></code> がクラッシュする可能性があります。</li> </ul> <p>これらの問題に当てはまるサーバの設定の場合は、以下のようにして ファイルの配送時のメモリマッピングを使用不可にしてください:</p> <div class="example"><p><code> EnableMMAP Off </code></p></div> <p>NFS マウントされたファイルには、問題のあるファイルにのみ明示的に この機能を使用不可にします:</p> <div class="example"><p><code> <Directory "/path-to-nfs-files"> <span class="indent"> EnableMMAP Off </span> </Directory> </code></p></div> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="EnableSendfile" id="EnableSendfile">EnableSendfile</a> <a name="enablesendfile" id="enablesendfile">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>ファイルのクライアントへの配送時にカーネルの sendfile サポートを 使うかどうか</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>EnableSendfile On|Off</code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>EnableSendfile On</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>FileInfo</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> <tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>バージョン 2.0.44 以降で使用可能</td></tr> </table> <p>このディレクティブはクライアントにファイルの内容を送るときに <code class="program"><a href="../programs/httpd.html">httpd</a></code> がカーネルの sendfile サポートを使うかどうかを制御します。デフォルトでは、 例えば静的なファイルの配送のように、リクエストの処理にファイルの 途中のデータのアクセスを必要としないときには、Apache は OS が サポートしていればファイルを読み込むことなく sendfile を使って ファイルの内容を送ります。</p> <p>sendfile は read と send を別々に行なうことと、バッファの割り当てを 回避します。しかし、プラットフォームやファイルシステムの中には 運用上の問題を避けるためにこの機能を使用不可にした方が良い場合があります:</p> <ul> <li>プラットフォームの中にはビルドシステムが検知できなかった、壊れた sendfile のサポートが存在するものがあります。これは特に バイナリが別のマシンでビルドされ、壊れた sendfile のあるマシンに 移動したときに起こります。</li> <li>Linux では、sendfile を用いると、 IPv6 使用時に存在する特定ネットワークカードの TCP-checksum オフロードのバグを踏んでしまいます。</li> <li>Itanium で動いている Linux で、sendfile は 2GB 以上の ファイルを扱うことができないでしょう。</li> <li>ネットワークマウントされた <code class="directive"><a href="#documentroot">DocumentRoot</a></code> (例えば NFS や SMB) では、カーネルは自身のキャッシュを使ってネットワークからのファイルを 送ることができないことがあります。</li> </ul> <p>これらの問題に当てはまるサーバの設定の場合は、以下のようにして この機能を使用不可にしてください:</p> <div class="example"><p><code> EnableSendfile Off </code></p></div> <p>NFS や SMB マウントされたファイルには、問題のあるファイルにのみ明示的に この機能を使用不可にします:</p> <div class="example"><p><code> <Directory "/path-to-nfs-files"> <span class="indent"> EnableSendfile Off </span> </Directory> </code></p></div> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="ErrorDocument" id="ErrorDocument">ErrorDocument</a> <a name="errordocument" id="errordocument">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>エラーが発生したときにサーバがクライアントに送るもの</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>ErrorDocument <var>error-code document</var></code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>FileInfo</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> <tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>Apache 2.0 ではテキストをクウォートする構文が以前のバージョンから 変わっています。</td></tr> </table> <p>問題やエラーが発生したときの動作として、 Apache には以下の四つのうち一つの動作を設定することができます。</p> <ol> <li>Apache 標準の簡単なエラーメッセージを表示</li> <li>自分で指定したメッセージを表示</li> <li>問題やエラーの処理をする為に、自サーバ内の <var>URL-path</var> へリダイレクト</li> <li>問題やエラーの処理をする為に、外部の <var>URL</var> へリダイレクト</li> </ol> <p>最初のものがデフォルトの動作で、2 番目から 4 番目は、 <code class="directive">ErrorDocument</code>ディレクティブにより、 HTTP のレスポンスコードと、メッセージか URL を指定することで設定します。 Apache が問題もしくはエラーに関する追加情報を提供することがあります。</p> <p>URL の場合は、スラッシュで始まる (/) ローカルの web-path ( <code class="directive"><a href="#documentroot">DocumentRoot</a></code> からの相対パス ) か、クライアントが解決できる完全な URL を指定します。 もしくは、ブラウザに表示されるメッセージを指定できます。 例:</p> <div class="example"><p><code> ErrorDocument 500 http://foo.example.com/cgi-bin/tester<br /> ErrorDocument 404 /cgi-bin/bad_urls.pl<br /> ErrorDocument 401 /subscription_info.html<br /> ErrorDocument 403 "Sorry can't allow you access today" </code></p></div> <p>加えて、特別な値 <code>default</code> を使って Apache に ハードコードされている簡単なメッセージを指定することができます。 通常は必要ではありませんが、<code>default</code> を使うと 既存の <code class="directive">ErrorDocument</code> ディレクティブの設定を 継承するところで、Apache のハードコードされた簡単なメッセージに 戻すことができます。</p> <div class="example"><p><code> ErrorDocument 404 /cgi-bin/bad_urls.pl<br /><br /> <Directory /web/docs><br /> <span class="indent"> ErrorDocument 404 default<br /> </span> </Directory> </code></p></div> <p>リモート URL (例えば、頭に <code>http</code> と付与した方法) を <code class="directive">ErrorDocument</code> に指定するとき、 たとえ文書が同じサーバにあろうとも、ドキュメントがどこにあるかを通知するために、 Apache はリダイレクトをクライアントに送出するということに、注意してください。 これにはいろいろと関連して起こる問題があります。 中でも最も重要なのは、クライアントは元々のエラーステータスコードを受け取らず、 代わりにリダイレクトのステータスコードを受け取るということです。 これにより、ステータスコードを使って URL が有効であるかどうかを決定しようとする ウェブロボットやその他クライアントを、混乱させるかもしれません。 さらに、<code>ErrorDocument 401</code> にリモートの URL を指定すると、 クライアントは 401 というステータスコードを受け取らないため、 パスワードをユーザーに入力要求しなければならないことがわかりません。 従って、<strong><code>ErrorDocument 401</code> というディレクティブを使う場合は、 必ずローカルな文書を参照しなければなりません。</strong></p> <p>Microsoft Internet Explorer (MSIE) はデフォルトではサーバが生成したエラーメッセージが 「小さすぎる」ときには無視をして自分自身の「やさしい」エラーメッセージで 置換します。サイズのしきい値はエラーの種類によって異なりますが、 一般的にはエラーの文書を 512 バイトよりも大きくすると、MSIE は サーバが生成したエラーを隠さずに表示します。詳しい情報は Microsoft Knowledge Base の記事 <a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;Q294807">Q294807</a> にあります。</p> <p>ほとんどのエラーメッセージを上書きすることができますが、特定の状況下では <code class="directive"><a href="#errordocument">ErrorDocument</a></code> の設定にかかわらず 内蔵のメッセージが使われます。 特に、不正な形式のリクエストが検出された場合、通常のリクエスト処理は 即座に中止され、内蔵のエラーメッセージが返されます。 この処置は不正なリクエストによって引き起こされる、セキュリティ問題から 守るために必要な措置です。</p> <p>2.0 より前のバージョンでは、対になっていない二重引用符を 先頭に付けることによりメッセージであることを指定していました。</p> <h3>参照</h3> <ul> <li><a href="../custom-error.html">カスタマイズ可能な エラー応答のドキュメンテーション</a></li> </ul> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="ErrorLog" id="ErrorLog">ErrorLog</a> <a name="errorlog" id="errorlog">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>サーバがエラーをログ収集する場所</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code> ErrorLog <var>file-path</var>|syslog[:<var>facility</var>]</code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>ErrorLog logs/error_log (Unix) ErrorLog logs/error.log (Windows and OS/2)</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p><code class="directive">ErrorLog</code> ディレクティブは、 サーバに生じたさまざまなエラーを 記録する為のファイルの名前を設定します。 <var>file-path</var> が絶対パスでないときは、<code class="directive"><a href="#serverroot">ServerRoot</a></code> からの相対パスとみなされます。</p> <div class="example"><h3>例</h3><p><code> ErrorLog /var/log/httpd/error_log </code></p></div> <p><var>file-path</var> がパイプ (|) から始まる場合は、 エラーログを処理するために実行されるコマンドが 指定されていると解釈されます。</p> <div class="example"><h3>例</h3><p><code> ErrorLog "|/usr/local/bin/httpd_errors" </code></p></div> <p>ファイル名の変わりに <code>syslog</code> と指定することによって、 システムがサポートしていれば syslogd(8) を利用したロギングが有効になります。 デフォルトでは、<code>local7</code> ファシリティとなりますが、 <code>syslog:<var>facility</var></code> といった形で記述することにより、 通常 syslog(1) のドキュメントで説明されているファシリティの一つを使うように することができます。</p> <div class="example"><h3>例</h3><p><code> ErrorLog syslog:user </code></p></div> <p>セキュリティ: ログファイルを格納するディレクトリが、サーバを起動したユーザ以外の ユーザによって書き込める場合にセキュリティが破られる可能性があることに 関する詳細は <a href="../misc/security_tips.html#serverroot">セキュリティに関するコツ</a> を 参照してください。</p> <div class="warning"><h3>注</h3> <p>Unix 以外のプラットフォームでファイルのパスを入力するときは、 プラットフォームがバックスラッシュの使用を許していたとしても、 確実にスラッシュのみが使用されるように注意してください。一般的には、 設定ファイル全般でスラッシュのみを使う方が良いでしょう。</p> </div> <h3>参照</h3> <ul> <li><code class="directive"><a href="#loglevel">LogLevel</a></code></li> <li><a href="../logs.html">Apache ログファイル</a></li> </ul> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="FileETag" id="FileETag">FileETag</a> <a name="fileetag" id="fileetag">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>ETag HTTP 応答ヘッダを作成するために使用される ファイルの属性</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>FileETag <var>component</var> ...</code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>FileETag INode MTime Size</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>FileInfo</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p> <code class="directive">FileETag</code> ディレクティブは ドキュメントがファイルに基づいたものであるときに、 <code>ETag</code> (エンティティタグ) 応答ヘッダフィールドを作成するときに使用する ファイルの属性を設定します。 (<code>ETag</code> の値はネットワークの帯域を節約するための キャッシュの管理で使われます。) Apache 1.3.22 以前では、<code>ETag</code> の値は <em>常に</em>ファイルの inode, サイズ、最終修正時刻 (mtime) から作成 されていました。<code class="directive">FileETag</code> ディレクティブにより、これらのどれを使うかを 選ぶことができます。認識されるキーワードは: </p> <dl> <dt><strong>INode</strong></dt> <dd>ファイルの inode 番号を計算に使います</dd> <dt><strong>MTime</strong></dt> <dd>ファイルの最終修正時刻を使います</dd> <dt><strong>Size</strong></dt> <dd>ファイルの中身のバイト数を使います</dd> <dt><strong>All</strong></dt> <dd>使用可能なすべてのフィールドを使います。 これは <div class="example"><p><code>FileETag INode MTime Size</code></p></div> と等価です。</dd> <dt><strong>None</strong></dt> <dd>ドキュメントがファイルに基づいたものでも、<code>ETag</code> フィールドを 応答に付加しません</dd> </dl> <p><code>INode</code>, <code>MTime</code>, <code>Size</code> キーワードには <code>+</code> や <code>-</code> を前に付けて 指定することもできます。この場合は、より広い範囲から継承された デフォルトの設定に変更を加えるようになります。そのような接頭辞の 無いキーワードを指定すると、即座に継承した設定を無効にします。</p> <p>あるディレクトリの設定に <code>FileETag INode MTime Size</code> があり、 サブディレクトリの設定に <code>FileETag -INode</code> があるときは、 そのサブディレクトリの設定は (設定が上書きされなければサブディレクトリの サブディレクトリにも継承されます) <code>FileETag MTime Size</code> と同じになります。</p> <div class="warning"><h3>警告</h3> WebDAV を使っていて、<code class="module"><a href="../mod/mod_dav_fs.html">mod_dav_fs</a></code> をストレージプロバイダとして 使っているような Directory や Location では、デフォルト値を変更しないでください。 条件つきリクエスト中で、<code class="module"><a href="../mod/mod_dav_fs.html">mod_dav_fs</a></code> では <code>INode MTime Size</code> という形式の固定フォーマットであることを前提として <code>ETag</code> の比較を行っています。もし <code>ETag</code> フォーマットを <code class="directive">FileETag</code> で変えてしまうと、条件つきリクエストが うまく動作しなくなるでしょう。 </div> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="Files" id="Files"><Files></a> <a name="files" id="files">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>マッチするファイル名に適用されるディレクティブを囲む</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code><Files <var>filename</var>> ... </Files></code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>All</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p><code class="directive"><Files></code> ディレクティブは、 その中にあるディレクティブの適用範囲をファイル名で制限します。 <code class="directive"><a href="#directory"><Directory></a></code> ディレクティブや <code class="directive"><a href="#location"><Location></a></code> ディレクティブと 同じような機能を持ちます。 これは、<code></Files></code> ディレクティブと対に なっていなければなりません。 このセクション中のディレクティブは、ベース名 (ファイル名の最後の部分) が指定されたファイル名にマッチするすべてのオブジェクトに適用されます。 <code class="directive"><Files></code> セクションは <code class="directive"><Directory></code> セクションと <code>.htaccess</code> が読み込まれた後、 <code class="directive"><Location></code> セクションよりは先に 設定ファイルに現れた順に適用されます。 <code class="directive"><Files></code> は、 <code class="directive"><Directory></code> セクション内に ネストさせることができ、 ファイルシステムの一部にのみ限定して適用させることができます。</p> <p><var>filename</var> 引数は、ファイル名かワイルドカード文字列 で、ワイルドカードでは <code>?</code> は一つの文字、<code>*</code> は任意の文字列にマッチします。 <code>~</code> という文字を付加することで<a class="glossarylink" href="../glossary.html#regex" title="用語集を参照">正規表現</a>を使うこともできます。 例えば、</p> <div class="example"><p><code> <Files ~ "\.(gif|jpe?g|png)$"> </code></p></div> <p>とすることにより、一般的なインターネットの画像フォーマットにマッチします。 ただし、 <code class="directive"><a href="#filesmatch"><FilesMatch></a></code> を使う方が 推奨されています。</p> <p>ちなみに、<code class="directive"><a href="#directory"><Directory></a></code> と <code class="directive"><a href="#location"><Location></a></code> セクションとは異なり、 <code class="directive"><Files></code> は <code>.htaccess</code> ファイル内で利用することができます。 これにより、ユーザがファイル毎にアクセスの制御を行なうことができるように なっています。</p> <h3>参照</h3> <ul> <li>リクエストを受けた際にこれらの異なるセクションが 組み合わされる方法については <a href="../sections.html"> <Directory>, <Location>, <Files> セクションの動作法</a></li> </ul> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="FilesMatch" id="FilesMatch"><FilesMatch></a> <a name="filesmatch" id="filesmatch">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>正規表現にマッチするファイル名に適用される ディレクティブを囲む</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code><FilesMatch <var>regex</var>> ... </FilesMatch></code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>All</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p><code class="directive"><FilesMatch></code> ディレクティブは、 <code class="directive"><a href="#files"><Files></a></code> ディレクティブ同様にその中にあるディレクティブの適用範囲をファイル名で制限します。ただし、 このディレクティブには正規表現を指定します。 例えば:</p> <div class="example"><p><code> <FilesMatch "\.(gif|jpe?g|png)$"> </code></p></div> <p>は一般的なインターネットの画像形式にマッチします。</p> <h3>参照</h3> <ul> <li>リクエストを受けた際にこれらの異なるセクションが 組み合わされる方法については <a href="../sections.html"> <Directory>, <Location>, <Files> セクションの動作法</a></li> </ul> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="ForceType" id="ForceType">ForceType</a> <a name="forcetype" id="forcetype">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>すべてのマッチするファイルが指定の MIME コンテントタイプで 送られるようにする</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>ForceType <var>MIME-type</var>|None</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>ディレクトリ, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>FileInfo</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> <tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>Apache 2.0 で core に移動</td></tr> </table> <p><code>.htaccess</code> や <code class="directive"><a href="#directory"><Directory></a></code> セクション、 <code class="directive"><a href="#location"><Location></a></code> セクション、 <code class="directive"><a href="#files"><Files></a></code> セクションに 書かれた場合、このディレクティブはそこにあるすべてのファイルが <var>MIME-type</var> で指定されたコンテントタイプとして扱われるようにします。たとえば、 GIF ファイルばかりのディレクトリがあって、すべてのファイルを <code>.gif</code> で終わらせたくはないときに、以下のものを使用します:</p> <div class="example"><p><code> ForceType image/gif </code></p></div> <p><code class="directive"><a href="#defaulttype">DefaultType</a></code> と違って このディレクティブはメディアタイプを決めることができるかもしれない ファイルの拡張子も含め、すべての MIME タイプの関連付けを 上書きすることに注意してください。</p> <p><code>None</code> という値を使うことで <code class="directive">ForceType</code> の 設定を無効にできます:</p> <div class="example"><p><code> # force all files to be image/gif:<br /> <Location /images><br /> <span class="indent"> ForceType image/gif<br /> </span> </Location><br /> <br /> # but normal mime-type associations here:<br /> <Location /images/mixed><br /> <span class="indent"> ForceType None<br /> </span> </Location> </code></p></div> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="GprofDir" id="GprofDir">GprofDir</a> <a name="gprofdir" id="gprofdir">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>Directory to write gmon.out profiling data to. </td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>GprofDir <var>/tmp/gprof/</var>|<var>/tmp/gprof/</var>%</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table><p>このディレクティブの解説文書は まだ翻訳されていません。英語版をご覧ください。 </p></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="HostnameLookups" id="HostnameLookups">HostnameLookups</a> <a name="hostnamelookups" id="hostnamelookups">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>クライアントの IP アドレスの DNS ルックアップを 有効にする</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>HostnameLookups On|Off|Double</code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>HostnameLookups Off</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p>このディレクティブは、ホスト名をログ収集できるように DNS ルックアップを有効にします (さらに、CGI/SSI に <code>REMOTE_HOST</code> 変数として渡します)。 <code>Double</code>を指定した場合、2 重の逆引きを行ないます。 つまり、逆引きの後に、その結果に対して正引きを行ないます。正引きの 結果の IP アドレスの中にオリジナルのアドレスと一致するものがなければ なりません。("tcpwrappers" の用語では <code>PARANOID</code> と呼ばれています。)</p> <p><code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code> でホスト名によるアクセス 制御を行なう場合には、 設定の如何によらず 2 重の逆引きが実行されます。 これは、セキュリティを保つために必要です。 <code>HostnameLookups Double</code> を設定しない限り、 他の部分はこの 2 重逆引きの結果を使うことはできません。 例えば、<code>HostnameLookups On</code> と設定してある状態で、 ホスト名によるアクセス制限を行なったオブジェクトへの リクエストを受けたとすると、2 重の逆引きが成功するか否かによらず、 <code>REMOTE_HOST</code> には通常の逆引き結果が渡されます。</p> <p>ディレクティブのデフォルトは 本当に逆引きを必要としているわけではないサイトの ネットワークトラフィックを低減させるために、<code>Off</code> になっています。 ルックアップによる余計な遅延がなくなるため、 エンドユーザにとっても良いでしょう。 DNS のルックアップには、かなりの時間が必要となる場合が多く、 負荷の高いサイトではこのディレクティブは <code>Off</code> にすべきです。 なお、<var>/support</var> ディレクトリに含まれ、デフォルトでは インストールディレクトリの <code>bin</code> サブディレクトリに インストールされる <code class="program"><a href="../programs/logresolve.html">logresolve</a></code> ユーティリティにより、 Apache の動作とは別に、ログに残されている IP アドレスからホスト名を ルックアップすることが可能です。</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="HttpProtocolOptions" id="HttpProtocolOptions">HttpProtocolOptions</a> <a name="httpprotocoloptions" id="httpprotocoloptions">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>Modify restrictions on HTTP Request Messages</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>HttpProtocolOptions [Strict|Unsafe] [RegisteredMethods|LenientMethods] [Allow0.9|Require1.0]</code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>HttpProtocolOptions Strict LenientMethods Allow0.9</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> <tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>2.2.32 or 2.4.24 and later</td></tr> </table><p>このディレクティブの解説文書は まだ翻訳されていません。英語版をご覧ください。 </p></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="IfDefine" id="IfDefine"><IfDefine></a> <a name="ifdefine" id="ifdefine">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>起動時にテストが真であるときのみに処理されるディレクティブを 囲む</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code><IfDefine [!]<var>parameter-name</var>> ... </IfDefine></code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>All</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p><code><IfDefine <var>test</var>>...</IfDefine></code> セクションは、 ディレクティブを条件付きで指定するために利用します。 <code class="directive"><IfDefine></code> セクションに 含まれるディレクティブは、<var>test</var>が 定義されているときのみ処理されます。 もし <var>test</var> が定義されていなければ、 開始と終了の指定の間のディレクティブは無視されます。</p> <p><code class="directive"><IfDefine></code> セクションディレクティブに 指定する <var>test</var> は、 次の二つの形式のうちの一つをとります:</p> <ul> <li><var>parameter-name</var></li> <li><code>!</code><var>parameter-name</var></li> </ul> <p>前者の場合には、<var>parameter-name</var> と名付けられたパラメータが 定義されていれば開始と終了の間のディレクティブが処理されます。 後者の場合は逆で、<em>parameter-name</em> が指定されて<strong>いない</strong> 場合に処理されます。</p> <p><var>parameter-name</var> 引数は、サーバを起動する際に <code class="program"><a href="../programs/httpd.html">httpd</a></code> のコマンドラインに <code>-D<var>parameter-</var></code> という形で指定すると定義されます。 </p> <p><code class="directive"><IfDefine></code> セクションは 入れ子にすることができ、複数のパラメータによるテストをするために使用できます。 例:</p> <div class="example"><p><code> httpd -DReverseProxy ...<br /> <br /> # httpd.conf<br /> <IfDefine ReverseProxy><br /> <span class="indent"> LoadModule rewrite_module modules/mod_rewrite.so<br /> LoadModule proxy_module modules/libproxy.so<br /> </span> </IfDefine> </code></p></div> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="IfModule" id="IfModule"><IfModule></a> <a name="ifmodule" id="ifmodule">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>モジュールの存在するかしないかに応じて処理される ディレクティブを囲む</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code><IfModule [!]<var>module-file</var>|<var>module-identifier</var>> ... </IfModule></code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>All</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> <tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>モジュール識別子はバージョン 2.1 以降で使用可能。</td></tr> </table> <p><code><IfModule <var>test</var>>...</IfModule></code> セクションは、モジュールが存在するときに処理されるディレクティブを 指定するために利用します。 <code class="directive"><IfModule></code> セクションに 含まれるディレクティブは、<var>test</var> で指定するモジュールが組み込まれているときのみ処理されます。 もし <var>test</var> が組み込まれていなければ、開始と終了の間のディレクティブ は無視されます。</p> <p><code class="directive"><IfModule></code> セクションディレクティブに 指定する <var>test</var> は、 次の二つの形式のうちの一つをとります。</p> <ul> <li><var>module</var></li> <li>!<var>module</var></li> </ul> <p>前者の場合は、<var>module</var> と名付けられたモジュールが Apache に組み込まれていれば (コンパイル済みのものと、<code class="directive"><a href="../mod/mod_so.html#loadmodule">LoadModule</a></code> を利用して 動的に読み込んだものの両方)、 開始と終了の間のディレクティブが処理されます。 後者の場合は逆で、<var>module</var> が組み込まれて<strong>いない</strong> 場合に処理されます。</p> <p><var>module</var> 引数は、モジュール識別子か コンパイルをした時のモジュールのファイル名です。 例えば、<code>rewrite_module</code> は識別子で <code>mod_rewrite.c</code> はファイル名です。 モジュールが複数のソースファイルから構成されている場合は、文字列 <code>STANDARD20_MODULE_STUFF</code> があるファイルの名前を 使ってください。</p> <p><code class="directive"><IfModule></code> セクションは 入れ子にすることが可能であり、 複数のモジュールのテストを行なうために使用できます。</p> <div class="note">特定のモジュールの存在に関わらず動作する 設定ファイルの原本が必要なときにのみこのセクションを使用してください。 通常の動作では、ディレクティブを <code class="directive"><IfModule></code> セクションの中に 入れる必要はありません。</div> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="Include" id="Include">Include</a> <a name="include" id="include">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>サーバ設定ファイル中から他の設定ファイルを取り込む</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>Include <var>file-path</var>|<var>directory-path</var></code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> <tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>ワイルドカードによるマッチは 2.0.41 以降で使用可能</td></tr> </table> <p>このディレクティブにより、サーバの設定ファイルから 他の設定ファイルをインクルードすることができます。</p> <p>複数のファイルをアルファベット順に一度に読み込むために、 シェル形式 (<code>fnmatch</code>) のワイルドカード文字を使うことができます。 さらに、<code class="directive">Include</code> にディレクトリを指定した場合は、 ディレクトリとそのサブディレクトリ内の全てのファイルを アルファベット順に読み込んで、設定ファイルとして処理します。 しかし、ディレクトリ全体を読み込むのはお勧めできません。 ふとしたことから <code>httpd</code> が読み込みに失敗するような 一時ファイルをディレクトリに残してしまうようなことがよくあるからです。</p> <p>指定するファイルパスは絶対パスか、 <code class="directive"><a href="#serverroot">ServerRoot</a></code> ディレクトリからの 相対パスか、のどちらかです。</p> <p>例:</p> <div class="example"><p><code> Include /usr/local/apache2/conf/ssl.conf<br /> Include /usr/local/apache2/conf/vhosts/*.conf </code></p></div> <p><code class="directive"><a href="#serverroot">ServerRoot</a></code> からの相対パスの場合は:</p> <div class="example"><p><code> Include conf/ssl.conf<br /> Include conf/vhosts/*.conf </code></p></div> <p><code>apachectl configtest</code> を実行すると、設定をチェックしている時に 読み込まれたファイルのリストが表示されます:</p> <div class="example"><p><code> root@host# apachectl configtest<br /> Processing config file: /usr/local/apache2/conf/ssl.conf<br /> Processing config file: /usr/local/apache2/conf/vhosts/vhost1.conf<br /> Processing config file: /usr/local/apache2/conf/vhosts/vhost2.conf<br /> Syntax OK </code></p></div> <h3>参照</h3> <ul> <li><code class="program"><a href="../programs/apachectl.html">apachectl</a></code></li> </ul> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="KeepAlive" id="KeepAlive">KeepAlive</a> <a name="keepalive" id="keepalive">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>HTTP の持続的な接続を有効にする</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>KeepAlive On|Off</code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>KeepAlive On</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p>HTTP/1.0 の Keep-Alive 拡張と HTTP/1.1 の持続的接続の機能は、 複数のリクエストが同じ TCP の接続で送られる、長時間持続する HTTP セッションを提供します。たくさんの画像が 含まれる HTML ドキュメントでは場合によっては遅延時間が 50% 短縮される結果も でています。Keep-Alive 接続を有効にするには <code>KeepAlive On</code> と設定します。</p> <p>HTTP/1.0 に対応したクライアントの際には、 クライアントより特に要求があった場合のみ Keep-Alive 接続となります。 さらに、HTTP/1.0 クライアントでは、コンテンツの容量が先に (訳注: 要求に対して応答を返す前に) わかる場合のみ Keep-Alive 接続を利用できます。 これは、CGI の出力や SSI のページ、 サーバが生成したディレクトリのリストのような動的コンテンツを HTTP/1.0 クライアントに送る場合には Keep-Alive 接続を使えないことを意味します。 HTTP/1.1 に対応したクライアントの際には、 特に指定されない限りはデフォルトとして持続的な接続が行なわれます。 クライアントが要求すれば、コンテンツの容量を判別できないものを 持続的な接続を通して送るために、チャンクエンコーディングが用いられます。</p> <h3>参照</h3> <ul> <li><code class="directive"><a href="#maxkeepaliverequests">MaxKeepAliveRequests</a></code></li> </ul> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="KeepAliveTimeout" id="KeepAliveTimeout">KeepAliveTimeout</a> <a name="keepalivetimeout" id="keepalivetimeout">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>持続的な接続で次のリクエストが来るまでサーバが待つ時間</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>KeepAliveTimeout <var>seconds</var></code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>KeepAliveTimeout 5</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p>接続を閉じる前に、Apache が次のリクエストを何秒待つかを指定します。 リクエストを受け付けた後は、<code class="directive"><a href="#timeout">Timeout</a></code> ディレクティブによって 指定されたタイムアウト値が使われます。</p> <p><code class="directive">KeepAliveTimeout</code> を大きな値に設定すると、 負荷の高いサーバにおいてはパフォーマンスの問題を引き起こす場合があります。 タイムアウトが長ければ長いほど、より多くのサーバプロセスが 活発でないクライアントからの接続の終了を待ち続けることになります。</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="Limit" id="Limit"><Limit></a> <a name="limit" id="limit">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>囲いの中にあるアクセス制御の適用を特定の HTTP メソッドのみに 制限する</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code><Limit <var>method</var> [<var>method</var>] ... > ... </Limit></code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>All</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p>アクセス制御は、通常<strong>全ての</strong>アクセスメソッドに対して 影響し、普通はこれが望ましい挙動です。 <strong>そうしたことから、大部分の場合にはアクセス制御に関わるディレクティブを <code class="directive"><Limit></code> セクション内に 書くべきではありません。 </strong></p> <p><code class="directive"><Limit></code> ディレクティブの 目的は、アクセス制御の範囲を 指定された HTTP メソッドに限定するためです。 それ以外のメソッドは、<code class="directive"><Limit></code> で囲われたアクセス制御の <strong>影響を受けません</strong>。 以下の例は、<code>POST</code>, <code>PUT</code>, <code>DELETE</code> のメソッドに対してのみアクセスの制御を行ない、 それ以外のメソッドについては制限しません:</p> <div class="example"><p><code> <Limit POST PUT DELETE><br /> <span class="indent"> Require valid-user<br /> </span> </Limit> </code></p></div> <p>メソッド名には以下の中から一つ以上を列挙することができます: <code>GET</code>, <code>POST</code>, <code>PUT</code>, <code>DELETE</code>, <code>CONNECT</code>, <code>OPTIONS</code>, <code>PATCH</code>, <code>PROPFIND</code>, <code>PROPPATCH</code>, <code>MKCOL</code>, <code>COPY</code>, <code>MOVE</code>, <code>LOCK</code>, <code>UNLOCK</code>. <strong>メソッド名は 大文字小文字を区別します。</strong> <code>GET</code> を指定した場合には <code>HEAD</code> リクエストにも制限がかかります。<code>TRACE</code> メソッドに制限をかけることはできません。</p> <div class="warning">アクセス制御が目的の場合は <code class="directive"><a href="#limit"><Limit></a></code> セクションの代わりに <code class="directive"><a href="#limitexcept"><LimitExcept></a></code> セクションを使用した方が良いでしょう。 <code class="directive"><a href="#limitexcept"><LimitExcept></a></code> セクションでは不特定のメソッドに対しても防御できるからです。</div> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="LimitExcept" id="LimitExcept"><LimitExcept></a> <a name="limitexcept" id="limitexcept">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>指定されたもの以外の HTTP メソッドにアクセス制御を 制限する</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code><LimitExcept <var>method</var> [<var>method</var>] ... > ... </LimitExcept></code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>All</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p><code class="directive"><LimitExcept></code> と <code></LimitExcept></code> は、引数に <strong>含まれていない</strong> HTTP のアクセスメソッドに適用するためのアクセス制御 ディレクティブを括るために利用します。 つまり、<code class="directive"><a href="#limit"><Limit></a></code> セクションの反対の動作をし、 標準のメソッドと標準外や未認識のメソッドの場合の両方を設定できます。 <code class="directive"><a href="#limit"><Limit></a></code> のドキュメントも 併せて参照してください。</p> <p>例:</p> <div class="example"><p><code> <LimitExcept POST GET><br /> <span class="indent"> Require valid-user<br /> </span> </LimitExcept> </code></p></div> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="LimitInternalRecursion" id="LimitInternalRecursion">LimitInternalRecursion</a> <a name="limitinternalrecursion" id="limitinternalrecursion">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>内部リダイレクトと入れ子になったサブリクエストの最大数を決定する</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>LimitInternalRecursion <var>number</var> [<var>number</var>]</code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>LimitInternalRecursion 10</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> <tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>Apache 2.0.47 以降で使用可能</td></tr> </table> <p>内部リダイレクトは例えば <code class="directive">Action</code> ディレクティブを 使っているときに起こります。<code class="directive">Action</code> ディレクティブは 元々のリクエストを CGI スクリプトに内部リダイレクトを行ないます。 サブリクエストはいくつかの URI に対して、リクエストされたときに 何が起こるかを調べるための Apache の機構です。例えば、<code class="module"><a href="../mod/mod_dir.html">mod_dir</a></code> は <code class="directive"><a href="../mod/mod_dir.html#directoryindex">DirectoryIndex</a></code> ディレクティブ がリストするファイルを調べるためにサブリクエストを使います。</p> <p><code class="directive">LimitInternalRecursion</code> は内部リダイレクトや サブリクエストが無限ループに陥ったときのサーバクラッシュを防ぎます。 普通、そのようなループは設定に失敗したときに発生します。</p> <p>このディレクティブは、リクエスト毎に評価される、二つの違う限界値を 設定します。最初の <var>number</var> は、起こり得る 内部リクエストの最大値を設定します。二つめの <var>number</var> は サブリクエストが入れ子にできる深さを設定します。<var>number</var> を 一つだけ指定したときは、両方の限界値にその値が設定されます。</p> <div class="example"><h3>例</h3><p><code> LimitInternalRecursion 5 </code></p></div> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="LimitRequestBody" id="LimitRequestBody">LimitRequestBody</a> <a name="limitrequestbody" id="limitrequestbody">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>クライアントから送られる HTTP リクエストのボディの 総量を制限する</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>LimitRequestBody <var>bytes</var></code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>LimitRequestBody 0</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>All</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p>このディレクティブは、リクエストボディに許されるバイト数、<var>bytes</var> を 0 (無制限を意味します) から 2147483647 (2GB) までの数値で指定します。</p> <p><code class="directive">LimitRequestBody</code> ディレクティブは、 ディレクティブが書かれたコンテキスト (サーバ全体、ディレクトリ、ファイル、ロケーション) 内で 許容する HTTP リクエストメッセージボディのサイズに制限をかけることができます。 クライアントのリクエストがその制限値を越えていれば、 サーバはリクエストを処理せずにエラーを返します。 普通のリクエストメッセージボディのサイズは、リソースの種類や 許可されているメソッドによって大きく変わります。 CGI スクリプトは、よく情報を受信するために メッセージボディを使います。 <code>PUT</code> メソッドの実装は、このディレクティブの値として 少なくともあるリソースに対してサーバが受け付けようとする 表現の大きさほどの値を必要とします。</p> <p>このディレクティブは、 管理者にクライアントからの異常なリクエストを制御できるようにし、 何らかの形のサービス拒否攻撃 (訳注:DoS) を避けるのに有効です。</p> <p>ある場所へのファイルアップロードを許可する場合に、 アップロードできるファイルのサイズを 100K に制限したければ、 以下のように指定します:</p> <div class="example"><p><code> LimitRequestBody 102400 </code></p></div> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="LimitRequestFields" id="LimitRequestFields">LimitRequestFields</a> <a name="limitrequestfields" id="limitrequestfields">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>クライアントからの HTTP リクエストのヘッダフィールドの数を 制限する</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>LimitRequestFields <var>number</var></code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>LimitRequestFields 100</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p><var>number</var> には、0 (無制限を意味します) から 32767 までの整数を指定します。 デフォルト値は、定数 <code>DEFAULT_LIMIT_REQUEST_FIELDS</code> によりコンパイル時に定義されます (配布時には 100 と指定されています)。</p> <p><code class="directive">LimitRequestBody</code> ディレクティブは、 サーバ管理者が HTTP リクエスト中において許可するリクエストヘッダフィールド数を 指定します。 サーバはこの値には通常のクライアントからのリクエストに含まれるであろう フィールドの数より大きな値が必要とします。 クライアントにより使われた要求ヘッダーフィールドの数が 20 を超えることはほとんどありませんが、 これは種々のクライアントの実装によって変わり、 詳細なコンテントネゴシエーションをするためのブラウザの設定までにも 影響されることがあります。 オプションの HTTP 拡張はリクエストヘッダフィールドを使って表される場合が 多くあります。</p> <p>このディレクティブは、 管理者にクライアントからの異常なリクエストを制御できるようにし、 何らかの形のサービス拒否攻撃 (訳注:DoS) を避けるのに有効です。 リクエストのフィールドが多過ぎることを意味するエラー応答が 普通のクライアントに返されるような時はこの値を増やしてください。</p> <p>例:</p> <div class="example"><p><code> LimitRequestFields 50 </code></p></div> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="LimitRequestFieldSize" id="LimitRequestFieldSize">LimitRequestFieldSize</a> <a name="limitrequestfieldsize" id="limitrequestfieldsize">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>クライアントからの HTTP リクエストのヘッダの サイズを制限する</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>LimitRequestFieldSize <var>bytes</var></code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>LimitRequestFieldSize 8190</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p>このディレクティブは、HTTP リクエストヘッダ一つで受付ける バイト数 <var>bytes</var> を指定します。</p> <p><code class="directive">LimitRequestFieldSize</code> ディレクティブは、 HTTP リクエストヘッダで許容されるサイズを増減させることができます。 サーバは、このディレクティブの値として、 一般的なクライアントからリクエストが送られた際に、そのリクエストに 付属しているどのヘッダフィールドについても、 十分足りる大きさになっていなければなりません。 一般的なリクエストヘッダのサイズといっても、その大きさは個々の クライアントの実装によって大きく異なり、 詳細なコンテントネゴシエーションをサポートするかどうかの、 ブラウザの設定にも影響されたりします。 SPNEGO 認証ヘッダでは 12392 バイトにまで及ぶことすらあります。</p> <p>このディレクティブは、 管理者にクライアントからの異常なリクエストを制御できるようにし、 何らかの形のサービス拒否攻撃 (訳注:DoS) を避けるのに有効です。</p> <p>例:</p> <div class="example"><p><code> LimitRequestFieldSize 4094 </code></p></div> <div class="note">通常はデフォルトから変更する必要はありません。</div> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="LimitRequestLine" id="LimitRequestLine">LimitRequestLine</a> <a name="limitrequestline" id="limitrequestline">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>クライアントからの HTTP リクエスト行のサイズを制限する</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>LimitRequestLine <var>bytes</var></code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>LimitRequestLine 8190</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p>このディレクティブは、HTTP リクエスト行内で許容されるバイト数 <var>bytes</var> を指定します。</p> <p><code class="directive">LimitRequestLine</code> ディレクティブにより、 クライアントからの HTTP リクエスト行の許容サイズを増減できます。 リクエスト行は、HTTPメソッド、URI、プロトコルバージョンから成っており、 <code class="directive">LimitRequestLine</code> はサーバへのリクエストに対して 許容するリクエスト URI の長さを制限することになります。 サーバは、<code>GET</code> リクエストのクエリ部分も含めて、リソースの名前が入るに足る 大きさを必要とします。</p> <p>このディレクティブは、 管理者にクライアントからの異常なリクエストを制御できるようにし、 何らかの形のサービス拒否攻撃 (訳注:DoS) を避けるのに有効です。</p> <p>例:</p> <div class="example"><p><code> LimitRequestLine 4094 </code></p></div> <div class="note">通常はデフォルトから変更する必要はありません。</div> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="LimitXMLRequestBody" id="LimitXMLRequestBody">LimitXMLRequestBody</a> <a name="limitxmlrequestbody" id="limitxmlrequestbody">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>XML 形式のリクエストのボディのサイズを制限する</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>LimitXMLRequestBody <var>bytes</var></code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>LimitXMLRequestBody 1000000</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>All</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p>XML 形式のリクエストのボディの最大値を (バイト単位で) 制限します。 値に <code>0</code> を指定するとチェックを無効にします。</p> <p>例:</p> <div class="example"><p><code> LimitXMLRequestBody 0 </code></p></div> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="Location" id="Location"><Location></a> <a name="location" id="location">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>囲んだディレクティブをマッチする URL のみに適用</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code><Location <var>URL-path</var>|<var>URL</var>> ... </Location></code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p><code class="directive"><Location></code> ディレクティブは、 URL により中に書かれたディレクティブの適用範囲を制限します。 <code class="directive"><a href="#directory"><Directory></a></code> ディレクティブと似ていて、 <code></Location></code> ディレクティブで終了する サブセクションを開始します。 <code class="directive"><Location></code> セクションは、 <code class="directive"><a href="#directory"><Directory></a></code> セクションと <code>.htaccess</code> の読み込みの後、 <code class="directive"><a href="#files"><Files></a></code> セクションを 適用した後に、設定ファイルに現れた順に処理されます。</p> <p><code class="directive"><Location></code> セクションは 完全にファイルシステムと関連せずに動作します。このことから導かれる 結果にはいくつか注意する点があります。最も重要なものは、 ファイルシステムの位置へのアクセス制御に <code class="directive"><Location></code> ディレクティブを使うべきではない ということです。複数の URL がファイルシステムの同じ位置にマップされる 可能がありますので、そのようなアクセス制御は回避されてしまう可能性が あります。</p> <div class="note"><h3>いつ <code class="directive"><Location></code> を使うか</h3> <p><code class="directive"><Location></code> ディレクティブは ファイルシステム外のコンテンツにディレクティブを適用するときに 使用してください。ファイルシステムに存在するコンテンツに対しては、 <code class="directive"><a href="#directory"><Directory></a></code> と <code class="directive"><a href="#files"><Files></a></code> を使ってください。 例外は、<code><Location /></code> で、これはサーバ全体に対して 設定を適用する簡単な方法です。</p> </div> <p>全ての (プロキシ以外の) リクエストに対し、 URL は <code>/path/</code> という、 接頭辞 <code>http://servername</code> を含まない形でマッチします。 プロキシリクエストの場合には、<code>scheme://servername/path</code> という接頭辞を含む形でマッチし、接頭辞を含めて指定する必要があります。</p> <p>URL にはワイルドカードを利用することができます。 <code>?</code> は任意の一文字、<code>*</code> は任意の文字列にマッチします。 どちらのワイルドカード文字も URL-path の / にはマッチしません。</p> <p><code>~</code> という文字を追加することで、<a class="glossarylink" href="../glossary.html#regex" title="用語集を参照">正規表現</a>を 利用することもできます。 例えば:</p> <div class="example"><p><code> <Location ~ "/(extra|special)/data"> </code></p></div> <p>は URL に <code>/extra/data</code> か <code>/special/data</code> という文字列が 含まれている場合にマッチします。 <code class="directive"><a href="#locationmatch"><LocationMatch></a></code> ディレクティブは <code class="directive"><Location></code> の正規表現 版とまったく同じ動作をします。</p> <p><code class="directive"><Location></code> 機能は、<code class="directive"><a href="#sethandler">SetHandler</a></code> ディレクティブと 組合わせて利用すると特に便利です。 例えば、<code>foo.com</code> のブラウザからのみステータスの参照を有効にしたければ、 次のようにすれば良いでしょう。</p> <div class="example"><p><code> <Location /status><br /> <span class="indent"> SetHandler server-status<br /> Order Deny,Allow<br /> Deny from all<br /> Allow from .foo.com<br /> </span> </Location> </code></p></div> <div class="note"><h3>/ (スラッシュ) に関する注</h3> <p>スラッシュ文字は、URL 内に現れる場所に応じて変化する 特別な意味を持っています。 ファイルシステムにおいて利用する場合には複数のスラッシュでも一つの スラッシュとして扱われることが多いですが、 (<em>すなわち</em>、<code>/home///foo</code> は <code>/home/foo</code> と同じといったように) URL においては必ずしもそうなるわけではありません。 <code class="directive"><a href="#locationmatch"><LocationMatch></a></code> ディレクティブや正規表現を利用した <code class="directive"><Location></code> ディレクティブで、 複数のスラッシュにマッチさせたいときには、明示的に記述する 必要があります。</p> <p>例えば、<code><LocationMatch ^/abc></code> は、 <code>/abc</code> というリクエスト URL にマッチしますが、 <code>//abc</code> というリクエスト URL にはマッチしません。 (正規表現でない) <code class="directive"><Location></code> ディレクティブは、 proxy リクエストに対して利用する際には同様の振る舞いをしますが、 (正規表現でない) <code class="directive"><Location></code> を proxy でないリクエストに対して利用する際には、 一つのスラッシュで複数のスラッシュにマッチします。 例えば、<code><Location /abc/def></code> と指定し、 <code>/abc//def</code> というリクエストがあれば、 マッチすることになります。</p></div> <h3>参照</h3> <ul> <li>リクエストを受けた際にこれらの異なるセクションが 組み合わされる方法については <a href="../sections.html"> <Directory>, <Location>, <Files> セクションの動作法</a></li> </ul> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="LocationMatch" id="LocationMatch"><LocationMatch></a> <a name="locationmatch" id="locationmatch">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>囲んだディレクティブを正規表現にマッチする URL のみに 適用</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code><LocationMatch <var>regex</var>> ... </LocationMatch></code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p><code class="directive"><LocationMatch></code> ディレクティブは、 <code class="directive"><a href="#location"><Location></a></code> と同じ様に URL により中に書かれたディレクティブの適用範囲を制限します。 但し、引数は普通の文字列ではなく、<a class="glossarylink" href="../glossary.html#regex" title="用語集を参照">正規表現</a>となります。 例えば、</p> <div class="example"><p><code> <LocationMatch "/(extra|special)/data"> </code></p></div> <p>は URL に <code>/extra/data</code> か <code>/special/data</code> という文字列が含まれている場合にマッチします。</p> <h3>参照</h3> <ul> <li>リクエストを受けた際にこれらの異なるセクションが 組み合わされる方法については <a href="../sections.html"> <Directory>, <Location>, <Files> セクションの動作法</a></li> </ul> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="LogLevel" id="LogLevel">LogLevel</a> <a name="loglevel" id="loglevel">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>ErrorLog の冗長性を制御する</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>LogLevel <var>level</var></code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>LogLevel warn</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p><code class="directive">LogLevel</code> は、エラーログ (<code class="directive"><a href="#errorlog">ErrorLog</a></code> ディレクティブを 見てください) へ記録するメッセージの冗長性を調整します。 以下の <var>level</var> を指定でき、順に重要度が下がっていきます。</p> <table class="bordered"> <tr> <th><strong>レベル</strong> </th> <th><strong>説明</strong> </th> <th><strong>例</strong> </th> </tr> <tr> <td><code>emerg</code> </td> <td>緊急 - システムが利用できない</td> <td>Child cannot open lock file. Exiting (子プロセスがロックファイルを開けないため終了した)</td> </tr> <tr> <td><code>alert</code> </td> <td>直ちに対処が必要</td> <td>getpwuid: couldn't determine user name from uid (getpwuid: UID からユーザ名を特定できなかった)</td> </tr> <tr> <td><code>crit</code> </td> <td>致命的な状態</td> <td>socket: Failed to get a socket, exiting child (socket: ソケットが得られないため、子プロセスを終了させた)</td> </tr> <tr> <td><code>error</code> </td> <td>エラー</td> <td>Premature end of script headers (スクリプトのヘッダが足りないままで終わった)</td> </tr> <tr> <td><code>warn</code> </td> <td>警告</td> <td>child process 1234 did not exit, sending another SIGHUP (子プロセス 1234 が終了しなかった。もう一度 SIGHUP を送る)</td> </tr> <tr> <td><code>notice</code> </td> <td>普通だが、重要な情報</td> <td>httpd: caught SIGBUS, attempting to dump core in ... (httpd: SIGBUS シグナルを受け、... へコアダンプをした)</td> </tr> <tr> <td><code>info</code> </td> <td>追加情報</td> <td>"Server seems busy, (you may need to increase StartServers, or Min/MaxSpareServers)..." (「サーバは負荷が高い、 (StartServers や Min/MaxSpareServers の値を増やす必要があるかも)」)</td> </tr> <tr> <td><code>debug</code> </td> <td>デバッグメッセージ</td> <td>"Opening config file ..." (設定ファイルを開いている...)</td> </tr> </table> <p>特定のレベルが指定された場合、それより高いレベルの全てのメッセージが 報告されます。 <em>例えば</em>、<code>LogLevel info</code> に指定すると、 <code>notice</code> と <code>warn</code> も報告されます。</p> <p>なお <code>crit</code> 以上のレベルを指定することが推奨されます。</p> <p>例:</p> <div class="example"><p><code> LogLevel notice </code></p></div> <div class="note"><h3>注</h3> <p>ファイルにログを出力する場合、<code>notice</code> レベルのメッセージは抑制されず、すべてログに出力されます。 しかし <code>syslog</code> を使用している場合は、 これは当てはまりません。</p> </div> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="MaxKeepAliveRequests" id="MaxKeepAliveRequests">MaxKeepAliveRequests</a> <a name="maxkeepaliverequests" id="maxkeepaliverequests">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>持続的な接続上で許可されるリクエストの数</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>MaxKeepAliveRequests <var>number</var></code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>MaxKeepAliveRequests 100</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p><code class="directive">MaxKeepAliveRequests</code> ディレクティブは、 <code class="directive"><a href="#keepalive">KeepAlive</a></code> が有効な場合に、 一回の接続で受け付け可能なリクエストの数を制限します。 <code>0</code> に設定していれば、受け付けるリクエストは無制限になります。 この設定は、サーバ性能を向上させるために、大きな数値を指定すること勧めます。 </p> <p>例:</p> <div class="example"><p><code> MaxKeepAliveRequests 500 </code></p></div> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="MaxRanges" id="MaxRanges">MaxRanges</a> <a name="maxranges" id="maxranges">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>Number of ranges allowed before returning the complete resource </td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>MaxRanges default | unlimited | none | <var>number-of-ranges</var></code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>MaxRanges 200</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> <tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>Available in Apache HTTP Server 2.2.21 and later</td></tr> </table><p>このディレクティブの解説文書は まだ翻訳されていません。英語版をご覧ください。 </p></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="MergeTrailers" id="MergeTrailers">MergeTrailers</a> <a name="mergetrailers" id="mergetrailers">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>Determines whether trailers are merged into headers</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>MergeTrailers [on|off]</code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>MergeTrailers off</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> <tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>2.2.28 and later</td></tr> </table><p>このディレクティブの解説文書は まだ翻訳されていません。英語版をご覧ください。 </p></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="NameVirtualHost" id="NameVirtualHost">NameVirtualHost</a> <a name="namevirtualhost" id="namevirtualhost">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>名前ベースのバーチャルホストのための IP アドレスを指定</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>NameVirtualHost <var>addr</var>[:<var>port</var>]</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p><code class="directive">NameVirtualHost</code> ディレクティブは、 <a href="../vhosts/">名前ベースのバーチャルホスト</a>の設定を行ないたい場合に 必要となるものです。</p> <p><var>addr</var> にはホスト名を指定できますが、 常に IP アドレスを指定するのが推奨されます。 例えば、</p> <div class="example"><p><code> NameVirtualHost 111.22.33.44 </code></p></div> <p><code class="directive">NameVirtualHost</code> ディレクティブは、 名前ベースのバーチャルホストを 利用してリクエストを受け付ける IP アドレスを指定します。 これは、普通は名前ベースのバーチャルホストアドレスです。 ただし、ファイアーウォールや他のプロキシがリクエストを受け付け、 違う IP アドレスのサーバにフォワードするという場合は、 リクエストを提供したいマシン上の物理インターフェースの IP アドレスを指定する必要があります。 複数のアドレスで複数の名前ベースのバーチャルホストを指定する場合は 各アドレスに対してディレクティブを書いてください。</p> <div class="note"><h3>中</h3> <p>「主サーバ」や、どの <code>_default_</code> サーバも、 <code class="directive">NameVirtualHost</code> で指定した IP アドレスへのリクエスト を処理することは<strong>ありません</strong> (なぜか <code class="directive">NameVirtualHost</code> を 指定したけどそのアドレスに <code class="directive">VirtualHost</code> を定義しなかった場合を除く)。</p> </div> <p>名前ベースのバーチャルホストにポート番号を指定することも可能です。 例えば</p> <div class="example"><p><code> NameVirtualHost 111.22.33.44:8080 </code></p></div> <p>IPV6 のアドレスは次の例のように角括弧で囲む必要があります:</p> <div class="example"><p><code> NameVirtualHost [2001:db8::a00:20ff:fea7:ccea]:8080 </code></p></div> <p>すべてのインタフェースへのリクエストを受け取るようにするためには、 引数として <code>*</code> を使います。</p> <div class="example"><p><code> NameVirtualHost * </code></p></div> <div class="note"><h3><code class="directive"><VirtualHost></code> ディレクティブの引数</h3> <p><code class="directive"><VirtualHost></code> ディレクティブの引数は <code class="directive">NameVirtualHost</code> ディレクティブの引数に正確に 合っている必要があることに注意してください。</p> <div class="example"><p><code> NameVirtualHost 1.2.3.4<br /> <VirtualHost 1.2.3.4><br /> # ...<br /> </VirtualHost><br /> </code></p></div> </div> <h3>参照</h3> <ul> <li><a href="../vhosts/">バーチャルホスト説明書 </a></li> </ul> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="Options" id="Options">Options</a> <a name="options" id="options">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>ディレクトリに対して使用可能な機能を設定する</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>Options [+|-]<var>option</var> [[+|-]<var>option</var>] ...</code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>Options All</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>Options</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p><code class="directive">Options</code> ディレクティブは、特定のディレクトリに対して どの機能が使用可能かを制御します。</p> <p><var>option</var> を <code>None</code>に指定すると、 特別な機能は全て無効になります。 また、以下の示す 1 個以上のものを指定できます。</p> <dl> <dt><code>All</code></dt> <dd><code>MultiViews</code> を除いた全ての機能が有効となります。 これがデフォルトです。</dd> <dt><code>ExecCGI</code></dt> <dd> <code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code> による CGI スクリプトの実行を許可します。</dd> <dt><code>FollowSymLinks</code></dt> <dd> サーバが、このディレクトリ内でシンボリックリンクをたどれるようにします。 <div class="note"><p>サーバがシンボリックリンクをたどる場合でも、 <code class="directive"><a href="#directory"><Directory></a></code> セクションに マッチさせるための パス名は<em>変更されません</em>。</p> <p><code class="directive"><a href="#location"><Location></a></code> 内に このオプションを指定しても<strong>無視される</strong>ことに 注意してください。</p> <p>このオプションを省略したからといってセキュリティの強化にはなりません。 なぜなら symlink の検査はレースコンディションを引き起こす可能性があり、 そのため回避可能になるからです。</p> </div></dd> <dt><code>Includes</code></dt> <dd> <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> が提供する SSI を有効にします。</dd> <dt><code>IncludesNOEXEC</code></dt> <dd> SSI は有効になりますが、<code>#exec</code> コマンド と <code>#exec CGI</code> は無効になります。 ただし、<code>#include virtual</code> により、<code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code> されたディレクトリで CGI を実行することは可能です。</dd> <dt><code>Indexes</code></dt> <dd> もし、URL がディレクトリにマップするリクエストであって、 且つ <code class="directive"><a href="../mod/mod_dir.html#directoryindex">DirectoryIndex</a></code> で指定したファイル (例えば、<code>index.html</code>) が ディレクトリ内に無ければ、<code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code> が ディレクトリ内の一覧を整形して返します。</dd> <dt><code>MultiViews</code></dt> <dd> <code class="module"><a href="../mod/mod_negotiation.html">mod_negotiation</a></code> による <a href="../content-negotiation.html">コンテントネゴシエーション</a> された "MultiViews" を許可します。</dd> <dt><code>SymLinksIfOwnerMatch</code></dt> <dd> シンボリック先のファイルまたはディレクトリが、 シンボリックリンクの所有ユーザ ID と同じ場合にのみシンボリックリンクを たどれるようにします。 <div class="note"><h3>注</h3> <p><code class="directive"><a href="#location"><Location></a></code> 内にこのオプションを 指定しても無視されます。</p> <p>このオプションはセキュリティの強化にはなりません。 なぜなら symlink の検査はレースコンディションを引き起こす可能性があり、 そのため回避可能になるからです。</p> </div> </dd> </dl> <p>通常、ディレクトリに対して複数の <code class="directive">Options</code> が 適用可能な場合、 最も近いもの一つのみが適用され、他のものは無視されます。 複数の指定がマージされるわけではありません。(<a href="../sections.html#mergin">セクションのマージ方法</a>を参照してください。) しかし、すべての <code class="directive">Options</code> ディレクティブが <code>+</code> や <code>-</code> 付きで 指定された場合はオプションの値はマージされます。 <code>+</code> を頭につければ現在の設定に加えられ、 <code>-</code> を付ければ現在の設定から削除されます。</p> <div class="warning"><h3>警告</h3> <p><code class="directive">Options</code> で指定する際に、 <code>+</code> や <code>-</code> のついたものと、ついていないものを 混ぜて指定する記述は誤った構文で、予期しない結果になるかもしれません。 </p> </div> <p>例えば、<code>+</code> や <code>-</code> を利用しない場合は:</p> <div class="example"><p><code> <Directory /web/docs><br /> <span class="indent"> Options Indexes FollowSymLinks<br /> </span> </Directory><br /> <br /> <Directory /web/docs/spec><br /> <span class="indent"> Options Includes<br /> </span> </Directory> </code></p></div> <p><code>/web/docs/spec</code> というディレクトリには、 <code>Includes</code> だけが適用されます。 しかし、2 番目の <code class="directive">Options</code> で <code>+</code> や <code>-</code> を利用してみると:</p> <div class="example"><p><code> <Directory /web/docs><br /> <span class="indent"> Options Indexes FollowSymLinks<br /> </span> </Directory><br /> <br /> <Directory /web/docs/spec><br /> <span class="indent"> Options +Includes -Indexes<br /> </span> </Directory> </code></p></div> <p><code>/web/docs/spec</code> というディレクトリには、 <code>FollowSymLinks</code> と <code>Includes</code> が適用されます。</p> <div class="note"><h3>注</h3> <p><code>-IncludesNOEXEC</code> もしくは <code>-Includes</code> を指定すると、 前の設定がどのようになっていようとも SSI は無効となります。</p> </div> <p>どのような設定もされていなければ、デフォルトでは <code>All</code> に なります。</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="Protocol" id="Protocol">Protocol</a> <a name="protocol" id="protocol">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>Protocol for a listening socket</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>Protocol <var>protocol</var></code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> <tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>Available in Apache 2.1.5 and later. On Windows, from Apache 2.3.3 and later.</td></tr> </table><p>このディレクティブの解説文書は まだ翻訳されていません。英語版をご覧ください。 </p><h3>参照</h3> <ul> <li><code class="directive">AcceptFilter</code></li> <li><code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code></li> </ul> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="RegisterHttpMethod" id="RegisterHttpMethod">RegisterHttpMethod</a> <a name="registerhttpmethod" id="registerhttpmethod">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>Register non-standard HTTP methods</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>RegisterHttpMethod <var>method</var> [<var>method</var> [...]]</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table><p>このディレクティブの解説文書は まだ翻訳されていません。英語版をご覧ください。 </p></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="Require" id="Require">Require</a> <a name="require" id="require">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>どの認証済みユーザがリソースをアクセスできるかを選択する</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>Require <var>entity-name</var> [<var>entity-name</var>] ...</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>ディレクトリ, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>AuthConfig</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p>このディレクティブは、認証されたユーザがリソースに対して アクセスできるかを制御します。 制限条件は承認モジュールで処理されます。 <code class="module"><a href="../mod/mod_authz_user.html">mod_authz_user</a></code> と <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code> で提供されている構文には、次のようなものもあります:</p> <dl> <dt><code>Require user <var>userid</var> [<var>userid</var>] ...</code></dt> <dd>指定されたユーザのみ、ディレクトリへのアクセスを許可します。</dd> <dt><code>Require group <var>group-name</var> [<var>group-name</var>] ...</code></dt> <dd>指定されたグループに属するユーザのみ、ディレクトリへのアクセスを許可します。</dd> <dt><code>Require valid-user</code></dt> <dd>全ての認証されたユーザに、ディレクトリへのアクセスを許可します。</dd> </dl> <p>require オプションを実装している他の承認モジュールには、 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code>, <code class="module"><a href="../mod/mod_authz_dbm.html">mod_authz_dbm</a></code>, <code class="module"><a href="../mod/mod_authz_owner.html">mod_authz_owner</a></code> といったものがあります。</p> <p><code class="directive">Require</code> は、正しく動作するためには <code class="directive"><a href="#authname">AuthName</a></code> 及び <code class="directive"><a href="#authtype">AuthType</a></code> ディレクティブや、 (ユーザとグループを指定するために) <code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code> 及び <code class="directive"><a href="../mod/mod_authz_groupfile.html#authgroupfile">AuthGroupFile</a></code> といったディレクティブと共に 指定する必要があります。 例えば:</p> <div class="example"><p><code> AuthType Basic<br /> AuthName "Restricted Resource"<br /> AuthUserFile /web/users<br /> AuthGroupFile /web/groups<br /> Require group admin </code></p></div> <p>このようにして適用されたアクセス制御は、<strong>全ての</strong>メソッドに 対して行なわれます。 <strong>通常は、これが望ましい動作です。</strong> もし、特定のメソッドに対してのみアクセスの制御を適用し、 他のメソッドは制限しない場合には、<code class="directive"><a href="#limit"><Limit></a></code> セクション内に <code class="directive">Require</code> を 指定してください。</p> <p><code class="directive">Require</code> を <code class="directive"><a href="../mod/mod_authz_host.html#allow">Allow</a></code> ディレクティブや <code class="directive"><a href="../mod/mod_authz_host.html#deny">Deny</a></code> ディレクティブと 組み合わせて使った場合、これらの制約の相互作用は <code class="directive"><a href="#satisfy">Satisfy</a></code> ディレクティブで制御されます。 </p> <div class="note"><h3>サブディレクトリで制御を解除する方法</h3> <p><code class="directive"><a href="#satisfy">Satisfy</a></code> ディレクティブ で、保護されたディレクトリのサブディレクトリ内でアクセス制御を 無効にする例は、下のようになります。 <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code> によるアクセス制御も無効化されるので、 このテクニックは注意してご活用ください。</p> <div class="example"><p><code> <Directory /path/to/protected/><br /> <span class="indent"> Require user david<br /> </span> </Directory><br /> <Directory /path/to/protected/unprotected><br /> <span class="indent"> # All access controls and authentication are disabled<br /> # in this directory<br /> Satisfy Any<br /> Allow from all<br /> </span> </Directory><br /> </code></p></div> </div> <h3>参照</h3> <ul> <li><a href="../howto/auth.html">認証・承認・アクセス制御</a></li> <li><code class="directive"><a href="#satisfy">Satisfy</a></code></li> <li><code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code></li> </ul> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="RLimitCPU" id="RLimitCPU">RLimitCPU</a> <a name="rlimitcpu" id="rlimitcpu">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>Apache の子プロセスから起動されたプロセスの CPU 消費量を 制限する</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>RLimitCPU <var>seconds</var>|max [<var>seconds</var>|max]</code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>未設定。オペレーティングシステムのデフォルトを使用</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>All</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p>一つか二つのパラメータをとります。 最初のパラメータは全プロセスに対するリソースのソフトリミットを設定し、 2 番目のパラメータは最大のリソースリミットを設定します。 パラメータには数字か、オペレーティングシステムの最大となる <code>max</code> のどちらかを指定することができます。 最大のリソースリミットを上げるためには、サーバを <code>root</code> で実行するか起動されなければいけません。</p> <p>ちなみに、この設定は Apache の子プロセス自体ではなく、 リクエストを受け付けた Apache の子プロセスから fork されたプロセスに 適用されます。 これには CGI や SSI から実行されたコマンドが含まれますが、Apache の 親プロセスから fork されたログのパイププロセスなどには適用されません。</p> <p>CPU リソースのリミットはプロセスあたりの秒数で表わされます。</p> <h3>参照</h3> <ul> <li><code class="directive"><a href="#rlimitmem">RLimitMEM</a></code></li> <li><code class="directive"><a href="#rlimitnproc">RLimitNPROC</a></code></li> </ul> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="RLimitMEM" id="RLimitMEM">RLimitMEM</a> <a name="rlimitmem" id="rlimitmem">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>Apache の子プロセスから起動されたプロセスのメモリ消費量を 制限する</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>RLimitMEM <var>bytes</var>|max [<var>bytes</var>|max]</code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>未設定。オペレーティングシステムのデフォルトを使用</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>All</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p>一つか二つのパラメータをとります。 最初のパラメータは全プロセスに対するリソースのソフトリミットを設定し、 2 番目のパラメータは最大のリソースリミットを設定します。 パラメータには数字か、オペレーティングシステムの最大となる <code>max</code> のどちらかを指定することができます。 最大のリソースリミットを上げるためには、サーバを <code>root</code> で実行するか起動されなければいけません。</p> <p>この設定は Apache の子プロセス自体ではなく、 リクエストを受け付けた Apache の子プロセスから fork されたプロセスに 適用されます。 これには CGI や SSI から実行されたコマンドが含まれますが、Apache の 親プロセスから fork されたログのパイププロセスなどには適用されません。</p> <p>メモリリソースのリミットはプロセスあたりのバイト数で表わされます。</p> <h3>参照</h3> <ul> <li><code class="directive"><a href="#rlimitcpu">RLimitCPU</a></code></li> <li><code class="directive"><a href="#rlimitnproc">RLimitNPROC</a></code></li> </ul> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="RLimitNPROC" id="RLimitNPROC">RLimitNPROC</a> <a name="rlimitnproc" id="rlimitnproc">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>Apache の子プロセスから起動されたプロセスが起動するプロセスの 数を制限する</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>RLimitNPROC <var>number</var>|max [<var>number</var>|max]</code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>未設定。オペレーティングシステムのデフォルトを使用</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>All</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p>一つか二つのパラメータをとります。 最初のパラメータは全プロセスに対するリソースのソフトリミットを設定し、 2 番目のパラメータは最大のリソースリミットを設定します。 パラメータには数字か、オペレーティングシステムの最大となる <code>max</code> のどちらかを指定することができます。 最大のリソースリミットを上げるためには、サーバを <code>root</code> で実行するか起動されなければいけません。</p> <p>この設定は Apache の子プロセス自体ではなく、 リクエストを受け付けた Apache の子プロセスから fork されたプロセスに 適用されます。 これには CGI や SSI から実行されたコマンドが含まれますが、Apache の 親プロセスから fork されたログのパイププロセスなどには適用されません。</p> <p>プロセスの制限は、ユーザあたりのプロセス数で制御されます。</p> <div class="note"><h3>注</h3> <p> CGI プロセスがウェブサーバのユーザ ID 以外で実行されるので <strong>無ければ</strong>、 このディレクティブは、サーバ自身が生成できるプロセスの数を制限することになります。 そのような状況になっているかどうかは、<code>error_log</code> 中の <strong><code>cannot fork</code></strong> というメッセージにより 確認することができます。</p> </div> <h3>参照</h3> <ul> <li><code class="directive"><a href="#rlimitmem">RLimitMEM</a></code></li> <li><code class="directive"><a href="#rlimitcpu">RLimitCPU</a></code></li> </ul> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="Satisfy" id="Satisfy">Satisfy</a> <a name="satisfy" id="satisfy">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>ホストレベルのアクセス制御とユーザ認証との相互作用を指定</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>Satisfy Any|All</code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>Satisfy All</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>ディレクトリ, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>AuthConfig</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> <tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>バージョン 2.0.51 以降では <code class="directive"><a href="#limit"><Limit></a></code> ディレクティブと <code class="directive"><a href="#limitexcept"><LimitExcept></a></code> ディレクティブの影響を受ける </td></tr> </table> <p><code class="directive"><a href="../mod/mod_authz_host.html#allow">Allow</a></code> と <code class="directive"><a href="#require">Require</a></code> の両方が使われているときの アクセスポリシーを設定します。パラメータは <code>All</code> か <code>Any</code> です。このディレクティブはある場所へのアクセスがユーザ名/パスワード <em>と</em>クライアントのホストのアドレスで制限されているときにのみ 役立ちます。デフォルトの動作 (<code>All</code>) はクライアントがアドレスによる アクセス制限を満たし、<em>かつ</em>正しいユーザ名とパスワードを入力することを 要求します。<code>Any</code> では、クライアントはホストの制限を満たすか、 正しいユーザ名とパスワードの入力をするかをすればアクセスを許可されます。 これは、ある場所をパスワードで保護するけれど、特定のアドレスからの クライアントにはパスワードの入力を要求せずにアクセスを許可する、 というようなときに使用できます。</p> <p>例えば、同じネットワーク上にいる人にはウェブサイトのある部分について 無制限のアクセスを許したいけれど、外のネットワークの人には パスワードを提供させるようにするためには、次のような設定をすることが できます:</p> <div class="example"><p><code> Require valid-user<br /> Order allow,deny<br /> Allow from 192.168.1<br /> Satisfy Any </code></p></div> <p>バージョン 2.0.51 からは <code class="directive"><a href="#limit"><Limit></a></code> セクションと <code class="directive"><a href="#limitexcept"><LimitExcept></a></code> セクションを使用することで <code class="directive">Satisfy</code> ディレクティブが 適用されるメソッドを制限することが できるようになりました。</p> <h3>参照</h3> <ul> <li><code class="directive"><a href="../mod/mod_authz_host.html#allow">Allow</a></code></li> <li><code class="directive"><a href="#require">Require</a></code></li> </ul> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="ScriptInterpreterSource" id="ScriptInterpreterSource">ScriptInterpreterSource</a> <a name="scriptinterpretersource" id="scriptinterpretersource">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>CGI スクリプトのインタープリタの位置を調べるための手法</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>ScriptInterpreterSource Registry|Registry-Strict|Script</code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>ScriptInterpreterSource Script</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>FileInfo</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> <tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>Win32 のみ。 オプション <code>Registry-Strict</code> は Apache 2.0 以降で使用可能</td></tr> </table> <p>このディレクティブは、Apache で CGI スクリプトを 実行する場合に利用するインタープリタを、 どのように探し出すかについて制御するために使用します。 デフォルトの設定は <code>Script</code> です。これはスクリプトの shebang 行 (最初の行で <code>#!</code> から始まるもの) に指されているインタープリタを使用します。Win32 ではその行は 以下の様になります。</p> <div class="example"><p><code> #!C:/Perl/bin/perl.exe </code></p></div> <p>もしくは、<code>perl</code> が <code>PATH</code> にある場合は単に:</p> <div class="example"><p><code> #!perl </code></p></div> <p><code>ScriptInterpreterSource Registry</code> を指定すると、 スクリプトファイルの拡張子 (例えば、<code>.pl</code>) を キーとして、Windows のレジストリツリー <code>HKEY_CLASSES_ROOT</code> を検索するようになります。レジストリのサブキー <code>Shell\ExecCGI\Command</code> か、それが存在しない場合は <code>Shell\Open\Command</code> がスクリプトファイルを開くために 使われます。レジストリキーが見つからないときは、Apache は <code>Script</code> オプションが指定されたときの動作に戻ります。</p> <p>たとえば、レジストリの設定で .pl 拡張子が perl に関連付けられている:</p> <div class="example"><p><code><code>HKEY_CLASSES_ROOT\.pl\Shell\ExecCGI\Command\(Default) => C:\Perl\bin\perl.exe -wT</code></code></p></div> <div class="warning"><h3>セキュリティ</h3> <p><code>ScriptInterpreterSource Registry</code> を <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code> されたディレクトリで使うときは 注意してください。Apache はそのディレクトリ中の<em>すべての</em>ファイルを 実行しようとします。<code>Registry</code> という設定は通常は実行されない ファイルに対して望ましくないプログラムの実行が発生する可能性があります。 例えば、ほとんどの Windows システムで、 <code>.htm</code> ファイルのデフォルトの「開く」コマンドは Microsoft Internet Explorer を実行しますので、スクリプトに指定された ディレクトリにある <code>.htm</code> ファイルへのリクエストはサーバの バックグラウンドでブラウザを実行することになります。これは、一分内くらいで システムをクラッシュさるための良い方法です。</p> </div> <p>Apache 2.0 から導入されたオプション <code>Registry-Strict</code> は <code>Registry</code> と同じことを行ないますが、サブキー <code>Shell\ExecCGI\Command</code> のみを使います。 <code>ExecCGI</code> キーは普通に使われるキーではありません。Windows レジストリに手動で設定する必要がありますので、システムでの偶発的なプログラムの 実行を防ぐことができます。</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="ServerAdmin" id="ServerAdmin">ServerAdmin</a> <a name="serveradmin" id="serveradmin">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>サーバがクライアントに送るエラーメッセージに含める電子メールの アドレス</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>ServerAdmin <var>email-address</var>|<var>URL</var></code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p><code class="directive">ServerAdmin</code> は、クライアントに返すさまざまな エラーメッセージ中に記述する、 問合せアドレスを設定します。与えられた引数を <code>httpd</code> が URL と認識しない場合は、<var>email-address</var> だと解釈して、 ハイパーリンクのターゲットに <code>mailto:</code> を付けます。 実際には、ここには電子メールアドレスを使うことが推奨されています。 多くの CGI スクリプトはそうなっていることを仮定しています。 URL を使う場合は、あなたの管理下にある別サーバを指すようにしてください。 そうでないと、エラーが起こったときに連絡をすることができなくなって しまいます。 </p> <p>その際、これのために専用のアドレスを設定するのが良いでしょう。 例えば、</p> <div class="example"><p><code> ServerAdmin www-admin@foo.example.com </code></p></div> <p>といったようにします。ユーザはいつもサーバに関する話であるということを 明記してくるわけではありませんので。</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="ServerAlias" id="ServerAlias">ServerAlias</a> <a name="serveralias" id="serveralias">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>リクエストを名前ベースのバーチャルホストにマッチさせているときに 使用されるホストの別名</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>ServerAlias <var>hostname</var> [<var>hostname</var>] ...</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>バーチャルホスト</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p><code class="directive">ServerAlias</code> ディレクティブは、<a href="../vhosts/name-based.html">ネームベースのバーチャルホスト</a>において 使用するホストの別名を指定します。<code class="directive">ServerAlias</code> は適切であればワイルドカードも含めることができます。</p> <div class="example"><p><code> <VirtualHost *><br /> ServerName server.domain.com<br /> ServerAlias server server2.domain.com server2<br /> # ...<br /> </VirtualHost> </code></p></div> <h3>参照</h3> <ul> <li><a href="../vhosts/">Apache バーチャルホスト説明書</a></li> </ul> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="ServerName" id="ServerName">ServerName</a> <a name="servername" id="servername">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>サーバが自分自身を示すときに使うホスト名とポート</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>ServerName [<var>scheme</var>://]<var>fully-qualified-domain-name</var>[:<var>port</var>]</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> <tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>このディレクティブはバージョン 2.0 ではバージョン 1.3 の <code class="directive">Port</code> ディレクティブの機能も含みます。</td></tr> </table> <p><code class="directive">ServerName</code> ディレクティブは、 サーバが自分自身を示すリクエストスキームとホスト名とポートを設定します。 これは、リダイレクトする URL を生成する際に利用されます。 例えば、ウェブサーバを動かしているマシンは <code>simple.example.com</code> で、DNS のエイリアス <code>www.example.com</code> もあるときに、 ウェブサーバが後者として認識されて欲しいときは、以下のようにディレクティブを 使います。</p> <div class="example"><p><code> ServerName www.example.com:80 </code></p></div> <p><code class="directive">ServerName</code> が指定されていないときは、 サーバは IP アドレスから逆引きを行なうことでホスト名を知ろうとします。 <code class="directive">ServerName</code> にポートが指定されていないときは、 サーバはリクエストが来ている ポートを使います。最高の信頼性と確実性をもたらすためには、 <code class="directive">ServerName</code> を使ってホスト名とポートを明示的に 指定してください。</p> <p><a href="../vhosts/name-based.html">名前ベースのバーチャルホスト</a> を利用している場合、<code class="directive"><a href="#virtualhost"><VirtualHost></a></code> セクション内の <code class="directive">ServerName</code> はこのバーチャルホストにマッチするために 何がリクエストの Host: ヘッダに現れる必要があるのかを指定します。</p> <p>リバースプロキシやロードバランサやSSL負荷軽減装置のような、 SSLを処理するマシンの後ろでサーバを動かす場合は、 サーバが正しい自己参照 URLを確実に生成するように、 <code>https://</code> スキームとクライアントが接続するポート番号を、 <code class="directive">ServerName</code> ディレクティブに指定してください。 </p> <p>自己参照 URL (例えば <code class="module"><a href="../mod/mod_dir.html">mod_dir</a></code> モジュールによるものなど) が指定されたポートを使うか、クライアントのリクエストのポート番号を使うかを 決定する設定は <code class="directive"><a href="#usecanonicalname">UseCanonicalName</a></code> ディレクティブと <code class="directive"><a href="#usecanonicalphysicalport">UseCanonicalPhysicalPort</a></code> ディレクティブを参照してください。</p> <h3>参照</h3> <ul> <li><a href="../dns-caveats.html">DNS と Apache に関する話</a></li> <li><a href="../vhosts/">Apache バーチャルホスト説明書</a></li> <li><code class="directive"><a href="#usecanonicalname">UseCanonicalName</a></code></li> <li><code class="directive"><a href="#usecanonicalphysicalport">UseCanonicalPhysicalPort</a></code></li> <li><code class="directive"><a href="#namevirtualhost">NameVirtualHost</a></code></li> <li><code class="directive"><a href="#serveralias">ServerAlias</a></code></li> </ul> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="ServerPath" id="ServerPath">ServerPath</a> <a name="serverpath" id="serverpath">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>非互換のブラウザが名前ベースのバーチャルホストにアクセスしたときの ための互換用 URL パス名</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>ServerPath <var>URL-path</var></code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>バーチャルホスト</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p><code class="directive">ServerPath</code> ディレクティブは、<a href="../vhosts/">ネームベースのバーチャルホスト</a>において利用する 互換用 URL パス名を設定します。</p> <h3>参照</h3> <ul> <li><a href="../vhosts/">Apache バーチャルホスト説明書</a></li> </ul> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="ServerRoot" id="ServerRoot">ServerRoot</a> <a name="serverroot" id="serverroot">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>インストールされたサーバのベースディレクトリ</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>ServerRoot <var>directory-path</var></code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>ServerRoot /usr/local/apache</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p><code class="directive">ServerRoot</code> ディレクティブは、 サーバが存在するディレクトリを設定します。 通常、<code>conf/</code> や <code>logs/</code> といったサブディレクトリが 存在します。 また、他の設定ディレクティブ (例えば <code class="directive"><a href="#include">Include</a></code> や <code class="directive"><a href="../mod/mod_so.html#loadmodule">LoadModule</a></code> など) における相対パスは、 このディレクトリからの相対位置となります。</p> <div class="example"><h3>例</h3><p><code> ServerRoot /home/httpd </code></p></div> <h3>参照</h3> <ul> <li><a href="../invoking.html"><code>httpd</code> の <code>-d</code> オプション</a></li> <li><code class="directive">ServerRoot</code> の権限を適切に設定する方法は<a href="../misc/security_tips.html#serverroot">セキュリティのこつ</a></li> </ul> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="ServerSignature" id="ServerSignature">ServerSignature</a> <a name="serversignature" id="serversignature">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>サーバが生成するドキュメントのフッタを設定</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>ServerSignature On|Off|EMail</code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>ServerSignature Off</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>All</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p><code class="directive">ServerSignature</code> ディレクティブは、 サーバが生成するドキュメント (エラーメッセージ、<code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> における FTP のディレクトリリスト、 <code class="module"><a href="../mod/mod_info.html">mod_info</a></code> の出力、等々) の最下行に付与するフッタの設定を行ないます。 そのようなフッタ行を有効にしたい理由には、 プロキシが複数連なっている場合に、ユーザはどのサーバが返した エラーメッセージかを知る手段がほとんど無いというものがあります。</p> <p>デフォルトである <code>Off</code> に設定をすると、フッタ行が抑制されます (そして、Apache-1.2 以前と互換の動作をします)。 <code>On</code> に設定した場合は、単にドキュメントの中に、サーバのバージョン、 稼動中のバーチャルホストの <a href="#servername">ServerName</a> の書かれた行を追加し、 <code>EMail</code> にした場合はさらに参照されたドキュメントに対する <a href="#serveradmin">ServerAdmin</a> を指す "mailto:" が追加されます。</p> <p>バージョン 2.0.44 以降ではこのディレクティブは <code class="directive"><a href="#serversignature">ServerSignature</a></code> ディレクティブにより表示される情報も制御します。</p> <h3>参照</h3> <ul> <li><code class="directive"><a href="#servertokens">ServerTokens</a></code></li> </ul> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="ServerTokens" id="ServerTokens">ServerTokens</a> <a name="servertokens" id="servertokens">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td><code>Server</code> HTTP 応答ヘッダを設定する</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full</code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>ServerTokens Full</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p>このディレクティブは、クライアントに送り返す <code>Server</code> 応答ヘッダ内に、サーバの一般的な OS 種別や、 コンパイルされて組み込まれているモジュールの情報を 含めるかどうかを指定します。</p> <dl> <dt><code>ServerTokens Prod[uctOnly]</code></dt> <dd>サーバは (例えば): <code>Server: Apache</code> といったように送ります。</dd> <dt><code>ServerTokens Major</code></dt> <dd>Server sends (<em>e.g.</em>): <code>Server: Apache/2</code></dd> <dt><code>ServerTokens Minor</code></dt> <dd>Server sends (<em>e.g.</em>): <code>Server: Apache/2.0</code></dd> <dt><code>ServerTokens Min[imal]</code></dt> <dd>サーバは (例えば): <code>Server: Apache/2.0.41</code> といったように送ります。</dd> <dt><code>ServerTokens OS</code></dt> <dd>サーバは (例えば): <code>Server: Apache/2.0.41 (Unix)</code> といったように送ります。</dd> <dt><code>ServerTokens Full</code> (もしくは未指定)</dt> <dd>サーバは (例えば): <code>Server: Apache/2.0.41 (Unix) PHP/4.2.2 MyMod/1.2</code> といったように送ります。</dd> </dl> <p>この設定はサーバ全体に適用され、バーチャルホスト上で有効にしたり 無効にしたりはできません。</p> <p>バージョン 2.0.44 以降ではこのディレクティブは <code class="directive"><a href="#serversignature">ServerSignature</a></code> ディレクティブにより表示される情報も制御します。</p> <h3>参照</h3> <ul> <li><code class="directive"><a href="#serversignature">ServerSignature</a></code></li> </ul> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="SetHandler" id="SetHandler">SetHandler</a> <a name="sethandler" id="sethandler">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>マッチするファイルがハンドラで処理されるようにする</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>SetHandler <var>handler-name</var>|None</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>FileInfo</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> <tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>Apache 2.0 で core に移動</td></tr> </table> <p><code>.htaccess</code> や <code class="directive"><a href="#directory"><Directory></a></code> セクション、<code class="directive"><a href="#location"><Location></a></code> セクションに書かれた場合、 このディレクティブはそこにあるすべてのファイルが <var>handler-name</var> で指定された<a href="../handler.html">ハンドラ</a>で扱われることを強制します。例えば、拡張子に関わらず、 ディレクトリ全体がイメージマップファイルとして解析して欲しい場合には、 以下をそのディレクトリの <code>.htaccess</code> ファイルに記述します:</p> <div class="example"><p><code> SetHandler imap-file </code></p></div> <p>別の例: URL <code>http://servername/status</code> が指定されたときにサーバが状態報告をするようにしたいときは、以下を <code>httpd.conf</code> に記述します:</p> <div class="example"><p><code> <Location /status><br /> <span class="indent"> SetHandler server-status<br /> </span> </Location> </code></p></div> <p><code>None</code> という値を設定することで、 前の方の <code class="directive">SetHandler</code> で定義された設定を無効にすることが できます。</p> <p><strong>注意:</strong>SetHandler はデフォルトのハンドラをオーバーライド しますので、通常の挙動、たとえば、スラッシュ (/) で終わる URL が リクエストされたときにディレクトリやインデックスファイルを返すよう取り扱う挙動は、 行われなくなります。 </p> <h3>参照</h3> <ul> <li><code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</a></code></li> </ul> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="SetInputFilter" id="SetInputFilter">SetInputFilter</a> <a name="setinputfilter" id="setinputfilter">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>クライアントのリクエストや POST の入力を処理するフィルタを設定する</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>SetInputFilter <var>filter</var>[;<var>filter</var>...]</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>FileInfo</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p><code class="directive">SetInputFilter</code> ディレクティブはクライアントの リクエストや POST の入力をサーバが受け取ったときに処理するフィルタを 設定します。これは <code class="directive"><a href="../mod/mod_mime.html#addinputfilter">AddInputFilter</a></code> ディレクティブを含め、他の場所で定義されているフィルタの設定に 追加されます。</p> <p>複数のフィルタを指定するときは、データを処理する順番に セミコロンで区切る必要があります。</p> <h3>参照</h3> <ul> <li><a href="../filter.html">フィルタ</a>説明書</li> </ul> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="SetOutputFilter" id="SetOutputFilter">SetOutputFilter</a> <a name="setoutputfilter" id="setoutputfilter">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>サーバの応答を処理するフィルタを設定する</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>SetOutputFilter <var>filter</var>[;<var>filter</var>...]</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>FileInfo</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p><code class="directive">SetOutputFilter</code> ディレクティブは サーバの応答をクライアントに送り返される前に処理するフィルタを設定します。 これは <code class="directive"><a href="../mod/mod_mime.html#addoutputfilter">AddOutputFilter</a></code> ディレクティブを含め、他の場所で定義されているフィルタの設定に 追加されます。</p> <p>例えば、以下の設定は <code>/www/data/</code> ディレクトリのすべての ファイルを SSI で処理します。</p> <div class="example"><p><code> <Directory /www/data/><br /> <span class="indent"> SetOutputFilter INCLUDES<br /> </span> </Directory> </code></p></div> <p>複数のフィルタを指定するときは、データを処理する順番に セミコロンで区切る必要があります。</p> <h3>参照</h3> <ul> <li><a href="../filter.html">フィルタ</a>説明書</li> </ul> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="Suexec" id="Suexec">Suexec</a> <a name="suexec" id="suexec">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>Enable or disable the suEXEC feature</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>Suexec On|Off</code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>On if suexec binary exists with proper owner and mode, Off otherwise</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> <tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>Available in Apache httpd 2.2.18 and later</td></tr> </table><p>このディレクティブの解説文書は まだ翻訳されていません。英語版をご覧ください。 </p></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="TimeOut" id="TimeOut">TimeOut</a> <a name="timeout" id="timeout">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>各イベントについて、リクエストを失敗させるまでにサーバが 待つ時間を設定</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>TimeOut <var>seconds</var></code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>TimeOut 300</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p><code class="directive">TimeOut</code> ディレクティブは、現在のところ 以下の三つの待ち時間についての定義を行います:</p> <ol> <li>GET リクエストを受け取るのにかかる総時間</li> <li>POST や PUTリクエストにおいて、次の TCP パケットが届くまでの待ち時間</li> <li>レスポンスを返す際、TCP の ACK が帰ってくるまでの時間</li> </ol> <p>将来には別々の設定をすることが可能にできるよう考慮中です。 Apache 1.2 以前はタイマーは 1200 がデフォルトでしたが、 300 に下げられました。300 でもほとんどの場合は十分すぎる値です。 コード中の変な場所にまだパケットを送る際にタイマをリセットしない 場所があるかもしれないので、デフォルトをより小さい値にはしていません。</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="TraceEnable" id="TraceEnable">TraceEnable</a> <a name="traceenable" id="traceenable">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td><code>TRACE</code> メソッドのリクエストに対する応答方法を決める </td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>TraceEnable <var>[on|off|extended]</var></code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>TraceEnable on</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> <tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>Apache 1.3.34, 2.0.55 以降</td></tr> </table> <p>コアサーバと <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> 両方の <code>TRACE</code> の挙動をオーバーライドします。デフォルトの <code>TraceEnable on</code> は、リクエストボディを受け入れないような、RFC2616 に準拠した <code>TRACE</code> リクエストを受け付けます。 <code>TraceEnable off</code> と設定すると、コアサーバと <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> は <code>405</code> (メソッド不許可) エラーをクライアントに返します。</p> <p>最後に、テストや調査目的などの限定用途として、仕様に準拠しない <code>TraceEnable extended</code> を使って、リクエストボディを 受け付けるように挙動を変更できます。(オリジンサーバとしての) コアサーバでは、リクエストボディのサイズは 64k ( <code>Transfer-Encoding: chunked</code> が使われている場合は chunk ヘッダ用に +8k) に制限されます。 コアサーバは、フルヘッダと全ての chunk ヘッダをレスポンスの ボディとして返却します。 proxy サーバとしては、リクエストボディのサイズは 64k に制限されません。</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="UseCanonicalName" id="UseCanonicalName">UseCanonicalName</a> <a name="usecanonicalname" id="usecanonicalname">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>サーバが自分自身の名前とポートを決定する方法を設定する</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>UseCanonicalName On|Off|Dns</code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>UseCanonicalName Off</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p>多くの状況で Apache は<em>自己参照</em> URL、すなわち 同じサーバを指す URL、を作成する必要があります。 <code>UseCanonicalName On</code> の場合は、<code class="directive"><a href="#servername">ServerName</a></code> ディレクティブで指定されている ホスト名とポート番号を使って、その正規名 (自己参照の名前) を生成します。 この名前は、すべての自己参照 URL で使われますし、CGI の <code>SERVER_NAME</code> と <code>SERVER_PORT</code> でも使われます。</p> <p><code>UseCanonicalName Off</code> の場合、 クライアントがホスト名とポートを指定したときには、 それらを元に自己参照 URL を作成します (指定がなかったときは 上の定義と同様にして正規名を解決します)。 これらの値は<a href="../vhosts/name-based.html">名前ベースの バーチャルホスト</a>を実装で使われているのと同じ値で、 同じクライアントで取得できる値になっています。 CGI 変数 <code>SERVER_NAME</code> と <code>SERVER_PORT</code> もクライアントから与えられた値から作成されます。</p> <p>このような挙動が便利な例は、イントラネットのサーバで <code>www</code> のような短い名前でユーザがマシンに接続するときです。 ユーザの入力で短いホスト名が使われていて、URL が<em>最後のスラッシュ無しの</em> ディレクトリになっている <code>http://www/splat</code> のようなとき、 Apache はリクエストを <code>http://www.domain.com/splat/</code> へリダイレクトします。 認証をするように設定していると、この場合 ユーザは 2 回認証をしなければならなくなります (<code>www</code> に 対して 1 回、<code>www.domain.com</code> に対してもう 1 回 -- 詳細は <a href="http://httpd.apache.org/docs/misc/FAQ.html#prompted-twice">この話題の FAQ</a> を参照してください)。 しかし <code class="directive">UseCanonicalName</code> が <code>Off</code> になっていると、 Apache は <code>http://www/splat/</code> にリダイレクトします。</p> <p>三つ目のオプション <code>UseCanonicalName DNS</code> は、 大規模な IP ベースのバーチャルホスティングで、 <code>Host:</code> ヘッダを提供しない古いクライアントを サポートする場合を想定しています。 このオプションでは Apache は、クライアントが接続した IP アドレスに対して DNS の逆引きを行なって、自己参照 URL を作成します。</p> <div class="warning"><h3>警告</h3> <p>CGI が <code>SERVER_NAME</code> に関して何らかの前提条件を 仮定しているときには、このオプションの設定によっては動作しなく なるかもしれません。クライアントは実質的にはホスト名として 何でも望みの値を指定することができます。CGI が <code>SERVER_NAME</code> を使って自己参照 URL を作成することしかしない 場合は、どの設定を行なっても大丈夫なはずです。</p></div> <h3>参照</h3> <ul> <li><code class="directive"><a href="#usecanonicalphysicalport">UseCanonicalPhysicalPort</a></code></li> <li><code class="directive"><a href="#servername">ServerName</a></code></li> <li><code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code></li> </ul> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="UseCanonicalPhysicalPort" id="UseCanonicalPhysicalPort">UseCanonicalPhysicalPort</a> <a name="usecanonicalphysicalport" id="usecanonicalphysicalport">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>サーバの名前とポートの解決方法を設定する</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>UseCanonicalPhysicalPort On|Off</code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>UseCanonicalPhysicalPort Off</code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p>Apache は様々な状況で <em>自己参照</em> URL つまりサーバが自分自身を指し示す URL を生成する必要があります。 <code class="directive"><a href="#usecanonicalname">UseCanonicalName</a></code> ディレクティブの 設定によってサーバの別名を構成するようになりますが、 その際の別名に使うポートは <code>UseCanonicalPhysicalPort On</code> という設定があれば、 実際のポート番号をポート番号として使う候補に入れてリクエストを 処理するようになります。<code>UseCanonicalPhysicalPort Off</code> という設定であれば、実際のポート番号は使用せず、設定されている情報を 全て信じてポート番号を構成するようになります。</p> <div class="note"><h3>注</h3> <p>実際のポート番号が使われる順序は次のようになっています :<br /><br /> <code>UseCanonicalName On</code></p> <ul> <li><code>ServerName</code> で指定されているポート番号</li> <li>実際のポート番号</li> <li>デフォルトのポート番号</li> </ul> <code>UseCanonicalName Off | DNS</code> <ul> <li><code>Host:</code> ヘッダから抽出されたポート番号</li> <li>実際のポート番号</li> <li><code>ServerName</code> で指定されているポート番号</li> <li>デフォルトのポート番号</li> </ul> <p><code>UseCanonicalPhysicalPort Off</code> で、 実際のポート番号が上の順序から取り除かれます。</p> </div> <h3>参照</h3> <ul> <li><code class="directive"><a href="#usecanonicalname">UseCanonicalName</a></code></li> <li><code class="directive"><a href="#servername">ServerName</a></code></li> <li><code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code></li> </ul> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="VirtualHost" id="VirtualHost"><VirtualHost></a> <a name="virtualhost" id="virtualhost">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>特定のホスト名や IP アドレスのみに適用されるディレクティブを 囲む</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code><VirtualHost <var>addr</var>[:<var>port</var>] [<var>addr</var>[:<var>port</var>]] ...> ... </VirtualHost></code></td></tr> <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr> </table> <p><code class="directive"><VirtualHost></code> 及び <code></VirtualHost></code> は、 特定のバーチャルホストに対してのみ適用されるディレクティブ群を括る ために使われます。 バーチャルホストコンテキストで許可される全てのディレクティブを指定可能です。 サーバが、指定されたバーチャルホストにあるドキュメントへの リクエストを受け付けた場合、 <code class="directive"><VirtualHost></code> セクションの中にある ディレクティブが適用されます。 <var>Addr</var>は、次のものが利用できます:</p> <ul> <li>バーチャルホストの IP アドレス</li> <li>バーチャルホストの IP に対応する完全なドメイン名(非推奨)</li> <li><code>NameVirtualHost *</code> と共に使われる、 すべての IP アドレスにマッチする文字 <code>*</code></li> <li>IP ベースのバーチャルホストで他のものにマッチしない IP アドレス のための文字列 <code>_default_</code></li> </ul> <div class="example"><h3>例</h3><p><code> <VirtualHost 10.1.2.3><br /> <span class="indent"> ServerAdmin webmaster@host.foo.com<br /> DocumentRoot /www/docs/host.foo.com<br /> ServerName host.foo.com<br /> ErrorLog logs/host.foo.com-error_log<br /> TransferLog logs/host.foo.com-access_log<br /> </span> </VirtualHost> </code></p></div> <p>IPv6 アドレスはオプションのポート番号の指定と区別するために、 角括弧で括って指定する必要があります。次は IPv6 の例です:</p> <div class="example"><p><code> <VirtualHost [2001:db8::a00:20ff:fea7:ccea]><br /> <span class="indent"> ServerAdmin webmaster@host.example.com<br /> DocumentRoot /www/docs/host.example.com<br /> ServerName host.example.com<br /> ErrorLog logs/host.example.com-error_log<br /> TransferLog logs/host.example.com-access_log<br /> </span> </VirtualHost> </code></p></div> <p>各々のバーチャルホストにはそれぞれ違う IP アドレス、ポート番号 もしくはホスト名に対応する必要があり、 1 番目の場合には複数のアドレスで IP パケットを受信できるように サーバマシンを設定しなければなりません。 (もし、マシンが複数のネットワークインターフェースを持たない場合は、 (OSがサポートしていれば) <code>ifconfig alias</code> コマンドにより 達成できます)。</p> <div class="note"><h3>注意点</h3> <p><code class="directive"><VirtualHost></code> は Apache が Listen する IP アドレスには影響を与え<strong>ません</strong>。 <code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code> を 使って Apache が正しいアドレスを listen するように設定する必要があります。</p> </div> <p>IP ベースのバーチャルホストを使っている場合は、特別な名前 <code>_default_</code> を指定することができます。その場合は そのバーチャルホストは他のバーチャルホストで明示的に挙げられていない すべての IP アドレスにマッチします。<code>_default_</code> バーチャルホストが無い 場合に IP がバーチャルホストで指定されたものにマッチしないときは、 VirtualHost セクションの外のすべての定義からなる「主」サーバ設定が 使われます。(ただし、<code class="directive"><a href="#namevirtualhost">NameVirtualHost</a></code> ディレクティブにマッチする すべての IP アドレスは「主」サーバ設定も <code>_default_</code> バーチャルホストも 使わないことに注意してください。詳しくは <a href="../vhosts/name-based.html">ネームベースのバーチャルホスト</a> を 参照してください。)</p> <p><code>:port</code> といった形式で記述することにより、 マッチさせるポートを変更可能です。 この指定をしない場合には、主サーバ設定における 一番最後に <code><a href="#port">Port</a></code> で指定されたポートが デフォルトとなります。 <code>:*</code> を指定することにより、 アドレス上の全てのポートにマッチします。(<code>_default_</code> のときは これを使うことが推奨されています。)</p> <p>それぞれの <code class="directive"><VirtualHost></code> ブロック内で <code class="directive"><a href="#servername">ServerName</a></code> を指定します。もしこれが無いと、"main" サーバ設定の <code class="directive"><a href="#servername">ServerName</a></code> が引き継がれます。</p> <div class="warning"><h3>セキュリティ</h3> <p>サーバーを起動した以外のユーザがログファイルが保管されるディレクトリに 書き込み可能なときになぜセキュリティが破られる可能性があるかの詳細は <a href="../misc/security_tips.html">セキュリティに関するコツ</a> を 参照してください。</p></div> <h3>参照</h3> <ul> <li><a href="../vhosts/">Apache バーチャルホスト説明書</a></li> <li><a href="../dns-caveats.html">DNS と Apache に関する話</a></li> <li><a href="../bind.html">Apache が使用するアドレスとポートの設定</a></li> <li>リクエストを受けた際にこれらの異なるセクションが 組み合わされる方法については <a href="../sections.html"> <Directory>, <Location>, <Files> セクションの動作法</a></li> </ul> </div> </div> <div class="bottomlang"> <p><span>翻訳済み言語: </span><a href="../de/mod/core.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> | <a href="../en/mod/core.html" hreflang="en" rel="alternate" title="English"> en </a> | <a href="../fr/mod/core.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | <a href="../ja/mod/core.html" title="Japanese"> ja </a> | <a href="../tr/mod/core.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p> </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> <script type="text/javascript"><!--//--><![CDATA[//><!-- var comments_shortname = 'httpd'; var comments_identifier = 'http://httpd.apache.org/docs/2.2/mod/core.html'; (function(w, d) { if (w.location.hostname.toLowerCase() == "httpd.apache.org") { d.write('<div id="comments_thread"><\/div>'); var s = d.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); } else { d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); } })(window, document); //--><!]]></script></div><div id="footer"> <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> <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[//><!-- if (typeof(prettyPrint) !== 'undefined') { prettyPrint(); } //--><!]]></script> </body></html>