Introduction

Introduction -- .htaccess ファイルとは

File_HtAccess とは?

File_HtAccess は Apache / NCSA 形式の .htaccess ファイルの生成と操作を行うための共通メソッドを提供します。 これらのファイルと共に付随するパスワードファイルは Web サーバのディレクトリを保護するために使用されます。 File_HtAccess はパスワードファイルの操作や生成に関する機能は提供していませんので、 File_Passwd と併用する必要があります。

.htaccess ファイルとは?

.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 認証とは

クライアントが Basic 認証で保護されたリソースにリクエストすると、 Web サーバは 401 Authentication Required ヘッダを返します。 クライアントが 401 ヘッダを受け取ると、 ユーザー名とパスワードをユーザーに問い合わせます。 認証が成功すると、保護されたリソースがクライアントに送信されます。 そうでない場合、アクセスは拒否されます。

Digest 認証とは

パスワードはサーバ側に暗号化されストアされますが、Basic 認証を使用する場合クライアントとサーバ間ではクリアテキストで送信されます。 Digest 認証ではパスワードは決してクリアテキストでは送信されません。 代わりに MD5 ダイジェストとして送信されます。 ほとんどのブラウザは Digest 認証をサポートしていないことに注意してください。