.htaccessとは?
Apache(Webサーバ)において、ディレクトリ単位の設定ファイルのことです。「エイチティーアクセス」と読みます。
本来、「httpd.conf」ファイルがApacheの設定ファイルですが、ディレクトリ単位で設定する際に使用するのが、「.htaccess」ファイルです。
アクセス制限や、URLリダイレクト等でよく使われます。
なお、このファイルの既定の名前は「.htaccess」ですが、「httpd.conf」の「AccessFileName」ディレクティブの設定により任意の名前を付けることができます。
設定可能な範囲
「.htaccess」で設定可能な範囲は、「httpd.conf」の「AllowOverride」ディレクティブで決まります。
AllowOverride
AllowOverrideディレクティブに設定可能な値は以下のとおりとなっています。(All、None以外はスペース区切りで複数設定可能です。)
All | すべてを許可する | |
AuthConfig | 認証のディレクティブを許可する | AuthName、AuthType、AuthUserFile、Require など |
FileInfo | ドキュメントタイプを制御するディレクティブを許可する | DefaultType、ErrorDocument、AddHandler、AddType など |
Indexes | ディレクトリインデックスを制御するディレクティブを許可する | DirectoryIndex、IndexOptions、DefaultIcon など |
Limit | サーバへのアクセスを制御するディレクティブを許可する | Order、Allow、Deny |
Options | 使用できる機能を制御するディレクティブを許可する | Options、XBitHack |
None | すべてを無効にする |
設定の及ぶ範囲
「.htaccess」はそれを配置したディレクトリだけでなく、その配下のサブディレクトリすべてに効力を及ぼします。
そのため、特定のディレクトリにアクセスがあった場合、上位のディレクトリすべての「.htaccess」を走査する必要があります。
XBitHackについて
「XBitHack」はSSI(サーバーサイドインクルード)において、拡張子ではなくファイルのパーミッションでインクルード対象かどうかを判別するよう設定できるディレクティブです。
参考