.htaccessについて

今更だけど、.htaccessが今イチ分かっていなかったのでメモ。
●htaccess(ドットエイチティーアクセス)とは、ApacheなどのWebサーバで使用できる、Webサーバの動作をディレクトリ単位で制御するためのファイル。

Apacheではhttpd.confという設定ファイルでApacheの設定を行うが、Webサーバの要となる設定ファイルであるため、Webサーバの管理者でないと設定を変更することができない。.htaccesshttpd.confで.htaccessの利用を許可している場合、Webサーバ管理者のみならずウェブサイトの管理者レベルでApacheの一部設定を行えるようにしたものである。

●htaccessで行える設定は全てhttpd.confで行うことができ、パフォーマンスやセキュリティの観点からそれが推奨されている[1]が、実際はサーバー管理者も.htaccessを使うケースが多い。

●htaccessを特定のディレクトリに設置すると、.htaccess内に記述された内容が設置されたディレクトリとその下層のディレクトリに対して適用される。また、下層ディレクトリの設定が上層ディレクトリと設定が矛盾した場合は下層ディレクトリ側の設定が優先される。

用途

httpd.confに記述することができる設定のうちの多くは.htaccessにも記述することができる。その名前からアクセス制御が中心と思われがちだが、実際は関係ない。以下は主要なものを記述しているが、このほかにも様々な使われ方がある。

◉IDとパスワードによる制限 - Basic認証やDigest認証を用いて特定のIDとパスワードを用いてログインしないと閲覧できないようにする。
IPアドレスリモートホストによる制限 - 特定のIPアドレスリモートホストのアクセスのみを許可、あるいは拒否を行えるようにする。
◉エラーメッセージのカスタマイズ - IDとパスワードが違う、アクセスが禁止されている、ページが見つからない、サーバーでエラーが生じたといったエラーメッセージを独自のものに差し替えることができる。
MIMEタイプの指定 - MIMEタイプを用いてファイルが何の種類(JPEG、zipなど)であるか判別させることができる。