Version 2.4.41
— y2sunlight 2019-10-07
関連記事
Appendix
ここでは<Directory>,<Files>,<Location>ブロックの中で良く使用される記述するアクセス制御ディレクティブについて説明します。Apache2.4 では、Apache2.2 からアクセス制御の記述方法が大幅に変わったおり、特に、Requireディレクティブを使ったアクセス制御は、これまでのOrderとAllow/Denyを使った方法よりも分かり易くなっています。
構文: Require [not] entity-name [entity-name] …
Requireディレクティブは、ユーザーが認証プロバイダーによって認証されているか否かをテストします。
Require all granted | アクセスは無条件で許可されます。 |
---|---|
Require all denied | アクセスは無条件で拒否されます。 |
Require env env-var [env-var] … | 指定された環境変数のいずれかが設定されている場合にのみアクセスが許可されます。 |
Require method http-method [http-method] … | 指定されたHTTPメソッドに対してのみアクセスが許可されます。 |
Require expr expression | expressionがtrueと評価された場合、アクセスが許可されます。 |
Require user userid [userid] … | 指定されたユーザーのみアクセスが許可されます。 |
Require group group-name [group-name] … | 指定されたグループのみアクセスが許可されます。 |
Require valid-user | すべての有効なユーザーに対してアクセスが許可されます。 |
Require ip [ip-pattern] … | 指定されたIPアドレス範囲に対してアクセスが許可されます。 |
構文: Options [+|-] option [[+|-]option] …
Optionsディレクティブは、特別なアクセス制御オプションを指定する場合に使います。option の頭に+ をにつければ現在の設定に加えられ、 - を付ければ現在の設定から削除されます。以下に指定できるoption を挙げます。
All | MultiViews を除いた全てのオプションが有効となります。 (デフォルト動作) |
---|---|
None | 全てのオプションを無効にします。 |
ExecCGI | CGI スクリプトの実行を許可します。 |
FollowSymLinks | ディレクトリ中のシンボリックリンクを有効にします。 ※ <Location>ブロック内では無視されます。 |
Includes | SSI を有効にします。 |
IncludesNOEXEC | SSI は有効になりますが、#exec コマンド と #exec CGI は無効になります。 ※ #include virtual で、ScriptAlias されたディレクトリでのCGI の実行は可能です。 |
Indexes | /で終わるURLリクエストで、DirectoryIndex で指定したファイル(index.htmlなど) が ディレクトリ内に無い場合、ディレクトリ中のファイルリストをクライアントに返します。 |
MultiViews | コンテントネゴシエーションされたMultiViewsを許可します。 |
SymLinksIfOwnerMatch | シンボリックリンクのリンク元とリンク先の所有者が同じ場合にのみシンボリックリンクを 有効にします。 ※ <Location>ブロック内では無視されます。 |
構文: AllowOverride directive-type [directive-type] …
AllowOverrideディレクティブはアクセス制御ファイル(既定では.htaccess)によりで上書きが許可されるディレクティブの種類を指定します。AllowOverride は正規表現無しの<Directory>ブロックでのみ有効です。以下に指定できるdirective-typeを挙げます。
All | 上書き可能な全てのディレクティブの種類が有効になります。 (デフォルト動作) |
---|---|
None | アクセス制御ファイルは無視されます |
AuthConfig | 認証に関するディレクティブの上書きを許可します。 ※ AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFileAuthName, AuthType, AuthUserFile, Require など。 |
FileInfo | ドキュメントタイプに関するディレクティブの上書きを許可します。 ※ DefaultType, ErrorDocument, ForceType, LanguagePriority, SetHandler, SetInputFilter, SetOutputFilter, mod_mime の Add* と Remove* ディレクティブなど。 |
Indexes | ディレクトリインデックスに関するディレクティブの上書きを許可します。 ※ AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName など。 |
Limit | ホストへのアクセス制御に関するディレクティブの上書きを許可します。 ※ Allow, Deny, Orderディレクティブ |
Options | 特別なアクセス制御オプションに関するディレクティブの上書きを許可します。 ※ Options と XBitHackディレクティブ |
Apache2.4ではOrderとAllow/Denyを使った方法よりもRequireを使うことをお薦めします。
構文: Order ordering
ホストに対するデフォルトのアクセス可能状態と、Allow/Deny ディレクティブの評価順を指定する場合に使います。以下に指定できるordering を挙げます。
Deny,Allow | ホストに対するアクセスはデフォルトで許可されます。Deny ,Allow の順で評価されます。Deny に一致するホストからのアクセスを拒否します。 (デフォルト動作) ※ カンマ(,)の前後に空白を入れてはいけません。 |
---|---|
Allow,Deny | ホストに対するアクセスはデフォルトで拒否されます。Allow,Deny の順で評価されます。Allowに一致するホストからのアクセスを許可します。 ※ カンマ(,)の前後に空白を入れてはいけません。 |
Order設定とAllow/Denyによるアクセス制御の結果
マッチ | Order Allow,Deny | Order Deny,Allow |
Allow だけにマッチ | 許可 | 許可 |
Deny だけにマッチ | 拒否 | 拒否 |
両方マッチしない | 拒否 | 許可 |
両方にマッチする | 拒否 | 許可 |
Apache2.4ではOrderとAllow/Denyを使った方法よりもRequireを使うことをお薦めします。
構文: Allow from all | host
構文: Deny from all | host
Allowディレクティブは特定のホストに対するアクセス許可を、Denyディレクティブはアクセス拒否を指定する場合に使用します。最初の引数は常にfromで、それに続く引数には以下の形式があります。
all | 全てのホストに対するアクセスを表します。 |
---|---|
host | DNS名、IPアドレスまたはネットワークアドレス/サブネットなどの様々な指定方法があります。 Allow from httpd.apache.org ・・・・・ DNS名 Allow from apache.org ・・・・・ DNS名の一部 Allow from 192.168.11.1 ・・・・・ IPアドレス Allow from 192.168.11 ・・・・・ IPアドレスの一部 Allow from 192.168.11.0/255.255.255.0 ・・・・・ ネットワークアドレス/サブネットマスク Allow from 192.168.11.0/24 ・・・・・ ネットワークアドレス/CIDR形式 |
より詳しい事は「Apache HTTP サーバ バージョン 2.4 ドキュメント
( http://httpd.apache.org/docs-2.4/ )」を参照して下さい。