.htaccess
.htaccess(ドットエイチティーアクセス)とは、Apacheを用いたWebサーバにおいて、ディレクトリ単位で設置及び設定を行える設定ファイルである。
Apacheではhttpd.confという設定ファイルでApacheの設定を行うが、Webサーバの要となる設定ファイルであるため、Webサーバの管理者でないと設定を変更することができない。.htaccessはhttpd.confで.htaccessの利用を許可している場合、Webサーバ管理者のみならずウェブサイトの管理者レベルでApacheの一部設定を行えるようにしたものである。
.htaccessで行える設定は全てhttpd.confで行うことができ、パフォーマンスやセキュリティの観点からそれが推奨されている[1]が、実際はサーバー管理者も.htaccessを使うケースが多い。
.htaccessを特定のディレクトリに設置すると、.htaccess内に記述された内容が設置されたディレクトリとその下層のディレクトリに対して適用される。また、下層ディレクトリの設定が上層ディレクトリと設定が矛盾した場合は下層ディレクトリ側の設定が優先される。
ファイル名の先頭にあるドットはUnix系のオペレーティングシステムにおいて「隠しファイル」を意味しており、「ファイルタイトルが存在しない.htaccessという拡張子だけのファイル」という意味ではない。
用途
編集httpd.confに記述することができる設定のうちの多くは.htaccessにも記述することができる。その名前からアクセス制御が中心と思われがちだが、実際は関係ない。以下は主要なものを記述しているが、このほかにも様々な使われ方がある。
- IDとパスワードによる制限 - Basic認証やDigest認証を用いて特定のIDとパスワードを用いてログインしないと閲覧できないようにする。
- IPアドレスとリモートホストによる制限 - 特定のIPアドレスとリモートホストのアクセスのみを許可、あるいは拒否を行えるようにする。
- エラーメッセージのカスタマイズ - IDとパスワードが違う、アクセスが禁止されている、ページが見つからない、サーバーでエラーが生じたといったエラーメッセージを独自のものに差し替えることができる。
- MIMEタイプの指定 - 拡張子(JPEG、zipなど)に応じて、Content-Type応答ヘッダーを設定する。ウェブサーバーのデフォルトと異なる設定が必要な場合に使用する。