<?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><!-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX This file is generated from xml source: DO NOT EDIT XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX --> <title>mod_access - Apache HTTP サーバ</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 href="../images/favicon.ico" rel="shortcut icon" /></head> <body> <div id="page-header"> <p class="menu"><a href="../mod/">モジュール</a> | <a href="../mod/directives.html">ディレクティブ</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">用語</a> | <a href="../sitemap.html">サイトマップ</a></p> <p class="apache">Apache HTTP サーバ バージョン 2.0</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.0</a> > <a href="./">モジュール</a></div> <div id="page-content"> <div id="preamble"><h1>Apache モジュール mod_access</h1> <div class="toplang"> <p><span>Available Languages: </span><a href="../en/mod/mod_access.html" hreflang="en" rel="alternate" title="English"> en </a> | <a href="../ja/mod/mod_access.html" title="Japanese"> ja </a></p> </div> <div class="outofdate">This translation may be out of date. Check the English version for recent changes.</div> <table class="module"><tr><th><a href="module-dict.html#Description">説明:</a></th><td>クライアントのホスト名、IP アドレス、その他のクライアント のリクエストの特徴に基づいたアクセス制御機能を提供する</td></tr> <tr><th><a href="module-dict.html#Status">ステータス:</a></th><td>Base</td></tr> <tr><th><a href="module-dict.html#ModuleIdentifier">モジュール識別子:</a></th><td>access_module</td></tr> <tr><th><a href="module-dict.html#SourceFile">ソースファイル:</a></th><td>mod_access.c</td></tr> <tr><th><a href="module-dict.html#Compatibility">互換性:</a></th><td>2.1 より前のバージョンのみで使用可能</td></tr></table> <h3>概要</h3> <p><code class="module"><a href="../mod/mod_access.html">mod_access</a></code> により提供されるディレクティブはサーバの特定の部分への アクセスを制御するために <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code>, <code class="directive"><a href="../mod/core.html#files"><Files></a></code>, <code class="directive"><a href="../mod/core.html#location"><Location></a></code> と <code><a href="core.html#accessfilename">.htaccess</a></code> ファイルで使用されます。クライアントのホスト名、IP アドレスや <a href="../env.html">環境変数</a>として取得された、その他のリクエストの特徴に基づいて アクセス制御を行なうことができます。<code class="directive"><a href="#allow">Allow</a></code> と <code class="directive"><a href="#deny">Deny</a></code> ディレクティブは どのようなクライアントにアクセスを 許可する、しないかを指定するために使用されます。一方、 <code class="directive"><a href="#order">Order</a></code> ディレクティブは デフォルトのアクセス状態と、 <code class="directive"><a href="#allow">Allow</a></code> ディレクティブと <code class="directive"><a href="#deny">Deny</a></code> ディレクティブとのお互いへの影響の仕方を設定します。 </p> <p>ホストによるアクセス制限とパスワードによる認証を同時に 行なうことが可能です。その場合、その二つの制限の関係を指定するために <code class="directive"><a href="../mod/core.html#satisfy">Satisfy</a></code> ディレクティブを使用します。</p> <p>一般的には、アクセス制限ディレクティブはすべてのアクセスメソッド (<code>GET</code>, <code>PUT</code>, <code>POST</code> など) に適用されます。そして、ほとんどの場合これが望ましい動作です。 しかし、<code class="directive"><a href="../mod/core.html#limit"><Limit></a></code> セクションの中にディレクティブを書くことで、 一部のメソッドにのみ制限をかけることもできます。</p> </div> <div id="quickview"><h3 class="directives">ディレクティブ</h3> <ul id="toc"> <li><img alt="" src="../images/down.gif" /> <a href="#allow">Allow</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#deny">Deny</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#order">Order</a></li> </ul> <h3>参照</h3> <ul class="seealso"> <li><code class="directive"><a href="../mod/core.html#satisfy">Satisfy</a></code></li> <li><code class="directive"><a href="../mod/core.html#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="Allow" id="Allow">Allow</a> <a name="allow" id="allow">ディレクティブ</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> Allow from all|<var>host</var>|env=<var>env-variable</var> [<var>host</var>|env=<var>env-variable</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>Limit</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_access</td></tr> </table> <p><code class="directive">Allow</code> ディレクティブはどのホストが サーバのある領域をアクセスできるかに影響を与えます。 アクセスはホスト名、IP アドレス、IP アドレスの範囲や、 環境変数として取得された、その他のクライアントのリクエストの 特徴によって制御することができます。</p> <p>このディレクティブの最初の引数は常に <code>from</code> です。 それに続く引数は三つの違った形式があります。<code>Allow from all</code> が指定されていれば、すべてのホストにアクセスを許可し、 アクセス制限は下で説明されているように、 <code class="directive"><a href="#deny">Deny</a></code> ディレクティブと <code class="directive"><a href="#order">Order</a></code> ディレクティブの設定で決まります。 特定のホストやホスト群にのみサーバへのアクセスを許可するためには、 以下のどれかの形式で <var>host</var> を指定することができます:</p> <dl> <dt>ドメイン名 (の一部)</dt> <dd> <div class="example"><h3>例:</h3><p><code> Allow from apache.org </code></p></div> <p>この文字列に合うか、これで終わる名前のホストのアクセスが許可されます。 各部分が完全に合うものだけに適用されますので、上の例は <code>foo.apache.org</code> にはマッチしますが、 <code>fooapache.org</code> にはマッチしません。 この設定をすると、Apache は <code class="directive"><a href="../mod/core.html#hostnamelookups">HostnameLookups</a></code> の設定に関わらず、クライアントの IP アドレスに対して 二重の DNS の逆引きを行ないます。まず IP アドレスに対して DNS の 逆引きを行なってホスト名を得、そのホスト名に対して正引きを 行ない、元の IP アドレスと一致するかを調べます。DNS の正引きと 逆引きが無矛盾かつホスト名が一致するときにのみ アクセスが許可されます。</p></dd> <dt>完全な IP アドレス</dt> <dd> <div class="example"><h3>例:</h3><p><code> Allow from 10.1.2.3 </code></p></div> <p>アクセスを許可する IP アドレスです。</p></dd> <dt>IP アドレスの一部</dt> <dd> <div class="example"><h3>例:</h3><p><code> Allow from 10.1 </code></p></div> <p>サブネットの制限用の、IP アドレスの最初の一つから三つまでのバイトです。</p></dd> <dt>ネットワーク/ネットマスク の対</dt> <dd> <div class="example"><h3>例:</h3><p><code> Allow from 10.1.0.0/255.255.0.0 </code></p></div> <p>ネットワーク a.b.c.d とネットマスク w.x.y.z です。 より細粒度のサブネット制限用です。</p></dd> <dt>ネットワーク/nnn CIDR 指定</dt> <dd> <div class="example"><h3>例:</h3><p><code> Allow from 10.1.0.0/16 </code></p></div> <p>ネットマスクが nnn の上位ビットが 1 となっているものからなること以外は前のものと同じです。</p></dd> </dl> <p>注: 最後の三つの例はまったく同じホストに合います。</p> <p>IPv6 アドレスと IPv6 のサブネットは以下のように指定できます:</p> <div class="example"><p><code> Allow from 2001:db8::a00:20ff:fea7:ccea<br /> Allow from 2001:db8::a00:20ff:fea7:ccea/10 </code></p></div> <p><code class="directive">Allow</code> ディレクティブの引数の三つ目の形式は、 <a href="../env.html">環境変数</a> の存在によりアクセスの制御を行なえるようにするものです。 <code>Allow from env=<var>env-variable</var></code> が指定されていると、環境変数 <var>env-variable</var> が存在した場合にリクエストはアクセスを許可されます。サーバは <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code> のディレクティブにより、クライアントのリクエスト の特徴に基づいて柔軟に環境変数を設定する機能を提供します。 ですから、このディレクティブはクライアントの <code>User-Agent</code> (ブラウザの種類)、<code>Referer</code> や他の HTTP リクエストのヘッダフィールドなどに基づいて アクセス許可をするために使うことができます。 </p> <div class="example"><h3>例:</h3><p><code> SetEnvIf User-Agent ^KnockKnock/2\.0 let_me_in<br /> <Directory /docroot><br /> <span class="indent"> Order Deny,Allow<br /> Deny from all<br /> Allow from env=let_me_in<br /> </span> </Directory> </code></p></div> <p>この場合、user-agent の文字列が <code>KnockKnock/2.0</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="Deny" id="Deny">Deny</a> <a name="deny" id="deny">ディレクティブ</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> Deny from all|<var>host</var>|env=<var>env-variable</var> [<var>host</var>|env=<var>env-variable</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>Limit</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_access</td></tr> </table> <p>このディレクティブはホスト名、IP アドレス、環境変数に基づいてサーバへのアクセスを制限します。 <code class="directive">Deny</code> ディレクティブの引数は <code class="directive"><a href="#allow">Allow</a></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="Order" id="Order">Order</a> <a name="order" id="order">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>デフォルトのアクセス可能な状態と、<code class="directive">Allow</code> と <code class="directive">Deny</code> が評価される順番を制御する</td></tr> <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code> Order <var>ordering</var></code></td></tr> <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>Order Deny,Allow</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>Limit</td></tr> <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_access</td></tr> </table> <p><code class="directive">Order</code> ディレクティブはデフォルトのアクセスの状態と <code class="directive"><a href="#allow">Allow</a></code> ディレクティブと <code class="directive"><a href="#deny">Deny</a></code> ディレクティブが評価される順番を制御します。 <var>Ordering</var> は以下のどれかです。</p> <dl> <dt><code>Deny,Allow</code></dt> <dd><code class="directive"><a href="#deny">Deny</a></code> ディレクティブが <code class="directive"><a href="#allow">Allow</a></code> ディレクティブの前に評価されます。 アクセスはデフォルトで許可されます。<code class="directive"><a href="#deny">Deny</a></code> ディレクティブに合わないか、<code class="directive"><a href="#allow">Allow</a></code> ディレクティブに合うクライアントはアクセスを許可されます。</dd> <dt><code>Allow,Deny</code></dt> <dd><code class="directive"><a href="#allow">Allow</a></code> ディレクティブが <code class="directive"><a href="#deny">Deny</a></code> ディレクティブの前に評価されます。 アクセスはデフォルトで拒否されます。<code class="directive"><a href="#allow">Allow</a></code> ディレクティブに合わないか、<code class="directive"><a href="#deny">Deny</a></code> ディレクティブに合うクライアントはアクセスを拒否されます。 </dd> <dt><code>Mutual-failure</code></dt> <dd><code class="directive"><a href="#allow">Allow</a></code> のリストに現れて、 <code class="directive"><a href="#deny">Deny</a></code> のリストに現れないホストのみがアクセスを許可されます。 この順番付けは <code>Order Allow,Deny</code> と同じ効果を持ち、 その設定の方が好ましいために非推奨となっています。</dd> </dl> <p>キーワードはコンマで分離することだけが可能です。 間に<em>空白があってはいけません</em>。どの場合でも、<code class="directive"><a href="#allow">Allow</a></code> と <code class="directive"><a href="#deny">Deny</a></code> 文は 全て評価されるということに注意してください。 </p> <p>以下の例では、apache.org ドメインのすべてのホストはアクセスを許可されます。 他のすべてのホストはアクセスを拒否されます。</p> <div class="example"><p><code> Order Deny,Allow<br /> Deny from all<br /> Allow from apache.org </code></p></div> <p>次の例では、foo.apache.org サブドメインにあるホスト以外の、 apache.org ドメインのすべてのホストがアクセスを許可されます。 apache.org ドメインでないホストは、デフォルトの状態がアクセス拒否のため、 サーバへのアクセスを拒否されます。</p> <div class="example"><p><code> Order Allow,Deny<br /> Allow from apache.org<br /> Deny from foo.apache.org </code></p></div> <p>一方、上の例の <code class="directive">Order</code> が <code>Deny,Allow</code> に変わっていれば、すべのホストにアクセスが許可されます。 これは、設定ファイル中の実際の順番に関わらず、 <code>Allow from apache.org</code> が最後に評価されて、 <code>Deny from foo.apache.org</code> を上書きするからです。 <code>apache.org</code> ドメインにないホストも、デフォルトの状態が <var>allow</var> に変化するために、アクセスを許可されます。 </p> <p><code class="directive">Order</code> ディレクティブはデフォルトのアクセスの状態に影響を与えるので、 <code class="directive"><a href="#allow">Allow</a></code> ディレクティブと <code class="directive"><a href="#deny">Deny</a></code> ディレクティブが無くても、サーバのアクセスに影響を与えることができます。 たとえば、</p> <div class="example"><p><code> <Directory /www><br /> <span class="indent"> Order Allow,Deny<br /> </span> </Directory> </code></p></div> <p>はデフォルトのアクセス状態が <var>deny</var> になるため、 <code>/www</code> ディレクトリへのすべてのアクセスを拒否します。 </p> <p><code class="directive">Order</code> ディレクティブはサーバの設定処理の各段階でだけ アクセスディレクティブの処理の順番を変更します。これは、たとえば、 <code class="directive">Order</code> ディレクティブの設定に関わらず、 <code class="directive"><a href="../mod/core.html#location"><Location></a></code> セクションの <code class="directive"><a href="#allow">Allow</a></code> ディレクティブや <code class="directive"><a href="#deny">Deny</a></code> ディレクティブは、 <code class="directive"><a href="../mod/core.html#directory">Directory</a></code> セクションや <code>.htaccess</code> ファイルの <code class="directive"><a href="#allow">Allow</a></code> ディレクティブや <code class="directive"><a href="#deny">Deny</a></code> ディレクティブよりも常に後に評価されるということを意味します。 設定セクションのマージの詳細については、 <a href="../sections.html">Directory,Location, Files セクションの動作方法</a> を参照してください。</p> </div> </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_access.html" hreflang="en" rel="alternate" title="English"> en </a> | <a href="../ja/mod/mod_access.html" title="Japanese"> ja </a></p> </div><div id="footer"> <p class="apache">Copyright 2009 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p> <p class="menu"><a href="../mod/">モジュール</a> | <a href="../mod/directives.html">ディレクティブ</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">用語</a> | <a href="../sitemap.html">サイトマップ</a></p></div> </body></html>