6.2.1 <で始まるディレクティブ
ブロック定義のディレクティブを参照順に示します。
-
<Directory>ディレクティブ,<DirectoryMatch>ディレクティブ,アクセスコントロールファイル
-
<Files>ディレクティブ,<FilesMatch>ディレクティブ
-
<Location>ディレクティブ
(1) <Directory ディレクトリ名>・・・</Directory>
(a) 内容
特定のディレクトリに対してディレクティブを定義する場合に指定します。ディレクトリ名にディレクトリ名を指定し,そのディレクトリとサブディレクトリだけに有効なディレクティブを定義するブロックを指定できます。
ディレクトリ名は,絶対パスで指定してください。
ただし,ディレクトリ名に,*および正規表現は指定できません。
また,J2EEサーバなどのアプリケーションが管理するディレクトリは,指定できません。
(b) 記述できる場所
httpsd.conf,<VirtualHost>
(c) 指定例
<Directory /> …1.
Options None …2.
AllowOverride None …3.
</Directory> …4.
<Directory "<Application Serverのインストールディレクトリ>/httpsd/htdocs"> …5.
Options Indexes …6.
AllowOverride None …7.
Order allow,deny …8.
Allow from all …9.
</Directory> …10.-
ルートディレクトリの定義
-
機能はすべて無効
-
すべての上書き禁止
-
定義終わり
-
<Application Serverのインストールディレクトリ>/httpsd/htdocsディレクトリの定義
-
ディレクトリインデクス表示可
-
すべての上書き禁止
-
Allowディレクティブの指定をDenyディレクティブの指定より先に評価
-
すべてのホストからのアクセスを許可
-
定義終わり
(2) <DirectoryMatch 正規表現>・・・</DirectoryMatch>
(a) 内容
正規表現で記述した条件を満たすディレクトリに対してディレクティブを定義する場合に指定します。ディレクトリ名を正規表現で指定し,そのディレクトリとサブディレクトリだけに有効なディレクティブを定義するブロックを指定できます。
正規表現のディレクトリ名は,絶対パスで指定してください。
J2EEサーバなどのアプリケーションが管理するディレクトリは,指定できません。
(b) 記述できる場所
httpsd.conf,<VirtualHost>
(3) <Files ファイル名>・・・</Files>
(a) 内容
特定のファイルに対してディレクティブを定義する場合に指定します。ファイル名にファイル名を指定し,そのファイルだけに有効なディレクティブを定義するブロックを指定できます。
ファイル名に,*および正規表現は指定できません。
(b) 記述できる場所
httpsd.conf,<VirtualHost>,<Directory>,.htaccess
(4) <FilesMatch 正規表現>・・・</FilesMatch>
(a) 内容
正規表現で記述した条件を満たすファイルに対してディレクティブを定義する場合に指定します。ファイル名を正規表現で指定し,そのファイルだけに有効なディレクティブを定義するブロックを指定できます。
(b) 記述できる場所
httpsd.conf,<VirtualHost>,<Directory>,.htaccess
(5) <IfModule 〔!〕モジュール名>・・・</IfModule>
(a) 内容
指定したモジュールが組み込まれているとき,ブロック内で指定したディレクティブが有効になります。モジュール名の前に!を付けた場合は,指定したモジュールが組み込まれていないとき,ブロック内で指定したディレクティブが有効になります。ブロック内で指定可能なディレクティブに制限はありません。
(b) 記述できる場所
httpsd.conf,<VirtualHost>,<Directory>,.htaccess
(6) <Limit メソッド名 〔メソッド名 …〕>・・・</Limit>
(a) 内容
特定のHTTPプロトコルメソッドだけに有効な,アクセス制御のディレクティブを定義する場合に指定します。メソッド名は複数指定できます。
指定できるメソッド名:GET,POST,PUT,DELETE,CONNECT,OPTIONS
(HEADはGETに含まれています)
ブロック内に指定できるディレクティブ:
-
Allow from
-
Deny from
-
AuthName
-
AuthType
-
AuthUserFile
-
AuthGroupFile
-
Order
-
Require
-
Satisfy
(b) 記述できる場所
httpsd.conf,<VirtualHost>,<Directory>,.htaccess
(c) 指定例
<Directory />
<Limit PUT DELETE> …1.
Order deny,allow …2.
Deny from all …3.
Allow from .your_domain.com …4.
</Limit> …5.
</Directory>-
PUTおよびDELETEメソッドに対する定義
-
Denyディレクティブの指定を,Allowディレクティブの指定よりも先に評価
-
すべてのホストからのPUTおよびDELETEメソッドによるアクセスは不可
-
.your_domain.comからのPUTおよびDELETEメソッドによるアクセスを許可
-
定義終わり
(7) <Location URL>・・・</Location>
(a) 内容
特定のURLで示す場所へのリクエストについて,ディレクティブを定義する場合に指定します。ただし,URLに,?以降(問い合わせ文字列),*および正規表現は指定できません。
(b) 記述できる場所
httpsd.conf,<VirtualHost>
(c) 指定例
<Location /server-status> …1.
SetHandler server-status …2.
Order deny,allow …3.
Deny from all …4.
Allow from .your_domain.com …5.
</Location> …6.-
URL /server-statusの定義
-
このディレクトリのリクエストはserver-statusハンドラに関連づける
-
Denyディレクティブの指定をAllowディレクティブの指定よりも先に評価
-
すべてのホストからのアクセスは不可
-
.your_domain.comからのアクセスを許可
-
定義終わり
(8) <LocationMatch 正規表現>・・・</LocationMatch>
(a) 内容
正規表現で記述した条件を満たすURLへのリクエストについてディレクティブを定義する場合に指定します。ただし,URLに,?以降(問い合わせ文字列)は指定できません。
(b) 記述できる場所
httpsd.conf,<VirtualHost>
(9) <VirtualHost {ホスト名|IPアドレス〔:ポート番号〕} 〔{ホスト名|IPアドレス〔:ポート番号〕} …〕>・・・</VirtualHost>
(a) 内容
ホスト名またはIPアドレス〔:ポート番号〕で示すホストへのリクエストについてディレクティブを定義する場合に指定します。
なお,IPv6アドレスに対応したホスト名も指定できます。IPアドレスにIPv6アドレスを指定する場合は,IPv6アドレスを[ ]で囲んでください。
IPアドレスには,すべてのIPアドレスにマッチする*が指定できます。
サーバ名に基づくバーチャルホストの場合には,IPアドレスを明示的に指定してください。
(b) 記述できる場所
httpsd.conf
(c) 指定例
<VirtualHost 172.17.40.30:80>
:
</VirtualHost>
<VirtualHost [2001::123:4567:89ab:cdef]:80>
:
</VirtualHost>