よみは?
エイチティーアクセス
何するものなの?
Apacheを用いたWebサーバにおいて、ディレクトリ単位で設置及び設定を行える設定ファイルである。
- httpd.conf とは別に、ディレクトリ単位でApacheの設定を追加する
- .htaccessが置かれたディレクトリと、そのサブディレクトリに適用される
- 設定の書き方は、httpd.conf と同様
なんでも設定できるの?
- 基本的にはそう
- 但し、httpd.conf にて、AllowOverrideディレクティブ を設定することで、制御が可能
- All : 全て許可
- None : .htaccessを無視
- AuthConfig, FileInfo, Indexes, Limit : それぞれ、特定の種類のディレクティブのみを許可
許可されないタイプのディレクティブを、.htaccess に指定したらどうなるの?
サーバエラーになる
どんな時に使うべきなの?
基本的には、.htaccessは使わずDirectoryディレクティブを使うべき
ISP等root権限の無い複数のユーザがそれぞれディレクトリ毎の設定を変更したい場合など
- 使う場合も、AllowOverrideディレクティブを使って、最低限の許可しか与えないようにすべき
.htaccessを使った場合の問題点
- サーバ性能の問題
- .htaccessは、サブディレクトリにも適用される
- 特定のディレクトリにアクセスがあった時には、そのディレクトリと、全ての親ディレクトリ上の .htaccess を探す
- その為、余計なファイルアクセスが発生する
- セキュリティの問題
- ユーザが自由に設定できるので、管理者が知らないうちに問題のある設定をされる危険がある
- AllowOverrideディレクティブにて、許可を絞り込むべき