File_HtAccess は Apache / NCSA 形式の .htaccess ファイルの生成と操作を行うための共通メソッドを提供します。 これらのファイルと共に付随するパスワードファイルは Web サーバのディレクトリを保護するために使用されます。 File_HtAccess はパスワードファイルの操作や生成に関する機能は提供していませんので、 File_Passwd と併用する必要があります。
.htacces の最も一般的で元々の目的は、ディレクトリごとにリソースの パスワード保護を行うことです。最近の Web サーバでは .htaccess ファイルが可能な事がたくさんあります。これらには、独自のエラーページや IP ベースのアクセス制御、自動的なユーザーリダイレクト、 ディレクトリ一覧の禁止やインデックスファイルとして異なるファイルを 使用することなどがあります。
File_HtAccess はディレクトリのパスワード保護にのみ専念していますが、 前述の他の制御も行うことができます。
.htaccess ファイルは以下の基本的なディレクティブから構成されます。 Basic 認証と Digest 認証のいずれを使用するかにより若干異なります。
表 44-1ディレクティブ
ディレクティブ | 目的 |
---|---|
AuthType | 使用する認証タイプ。"Basic" もしくは "Digest"。 |
AuthName | 認証レルムもしくは名前 |
AuthUserFile | Basic 認証を使用している場合のパスワードファイルへのフルパス |
AuthGroupFile | Basic 認証を使用している場合のグループファイルへのフルパス |
AuthDigestFile | Digest 認証を使用している場合のパスワードファイルへのフルパス |
AuthDigestGroupFile | Digest 認証を使用している場合のグループファイルへのフルパス |
Require | アクセスを許可するために満たすべき要求 |
File_HtAccess は getAuthType() や setAuthType() のように それぞれのディレクティブ名に相当するアクセサメソッドを提供しています。
典型的な .htaccess ファイルは次のようになります。
AuthName "Protected" AuthType Basic AuthUserFile /usr/local/apache/conf/users.dat require valid-user |
クライアントが Basic 認証で保護されたリソースにリクエストすると、 Web サーバは 401 Authentication Required ヘッダを返します。 クライアントが 401 ヘッダを受け取ると、 ユーザー名とパスワードをユーザーに問い合わせます。 認証が成功すると、保護されたリソースがクライアントに送信されます。 そうでない場合、アクセスは拒否されます。