Apache コンテナーは、他のディレクティブをグループ化する特別な構成ディレクティブです。コンテナーは XML スタイルのタグを使用します。つまり、コンテナーの開始は
<ディレクトリ ディレクトリ パス>
このコンテナは、ディレクトリ パス内のディレクトリにディレクティブを適用します。この例では、/var/www/html/test ディレクトリ階層内のすべてのファイルとディレクトリに Deny、Allow、および AllowOverride ディレクティブを適用します。インデントは読みやすさのみを目的としています。
<Directory /var/www/html/test> Deny from all Allow from 192.168.2. AllowOverride All </Directory>
AllowOverride このコンテナーのディレクティブは、.htaccess ファイルで許可されるディレクティブのクラスを指定します。 .htaccess ファイルは、通常、ユーザー認証ディレクティブを含むその他の構成ファイルです。 すべて AllowOverride への引数 .htaccess ファイルですべてのクラスのディレクティブが許可されていることを意味します。承認の制御、クライアント アクセスの制御、ディレクトリのインデックス作成の制御などを行うディレクティブのクラスがあります。
module-name がロードされている場合、このコンテナーはディレクティブを適用します。オプションの感嘆符を使用すると、Apache は逆の処理を行います。つまり、module-name がロードされていない場合、コンテナーにディレクティブを設定します。例は次のとおりです:
<IfModule mod_userdir.c> UserDir disabled </IfModule>
<制限方法 [方法] …>
このコンテナーは、アクセス制御ディレクティブを指定されたメソッドに制限します。 HTTP メソッドは、URI (Uniform Resource Identifier) に対して実行するアクションを指定します。メソッドの例は、GET (デフォルト)、PUT、POST、および OPTIONS です。次の例では、example.com ドメインにないシステムからの HTTP アップロード (PUT) を無効にします:
<Limit PUT> Order deny,allow Deny from all Allow from .example.com </Limit>
このコンテナーは、アクセス制御ディレクティブを
指定されたメソッド以外のすべてに制限するという点で、Limit コンテナーとは反対です。次の例では、LimitExcept コンテナーを使用していますが、コンテナーをネストできることも示しています。この例では、これらのディレクトリを読み取り専用に制限することで、UserDir ディレクトリへのアクセスを制御しています:
<Directory /home/*/public_html> AllowOverride FileInfo AuthConfig Limit Options MultiViews Indexes SymLinksIfOwnerMatch \ IncludesNoExec <Limit GET POST OPTIONS> Order allow,deny Allow from all </Limit> <LimitExcept GET POST OPTIONS> Order deny,allow Deny from all </LimitExcept> </Directory>
Options ディレクティブは、ディレクトリごとにサーバーの機能を制御します。これらのいくつかについて説明します:
- マルチビュー :ページをさまざまな言語で表示できるようにします。たとえば、
- インデックス :DirectoryIndex ディレクティブが設定されていない場合、ディレクトリ リストを生成します
- SymLinksIfOwnerMatch :指しているファイルまたはディレクトリの所有者がリンクと同じ場合、シンボリック リンクをたどります