.htaccess(エイチティーアクセス)とは

.htaccess(エイチティーアクセス)とは、Webサーバーで使われている「Apache」といわれるソフトウェア上で機能する、Apacheの制御用のファイルです。

Webサーバーで使われるソフトウェアには複数の種類がありますが、現在多くのサーバーでApacheが利用されています。

「.htaccess」が必要な理由

Apacheの主制御をするのは「httpd.conf」という設定ファイルですが、これはサーバー管理者しか変更することができないものです。そのため通常のレンタルサーバー利用ではApacheの制御を「httpd.conf」から行うことができません。
また、自分の管理するサーバーであっても、ディレクトリごとに違う動作を制御したい場合には大元の「httpd.conf」で設定してしまうと競合する設定を行うことができません。そういった場合にApacheを制御する手段として「.htaccess」というファイルを利用します。

「.htaccess」の設定方法

「.htaccess」ファイルは、設定をさせたいディレクトリに配置します。
例えば、下図のようにTOPディレクトリに設定した場合は、サイト全体のファイルとサブディレクトリに同一の設定が適応されます。しかし、B(サブディレクトリ)に別の「.htaccess」を配置した場合は、B(サブディレクトリ)以下の環境においては、そちらの「.htaccess」の設定が優先されます。「.htaccess」のディレクトリ適用範囲前段でも書きましたが、「.htaccess」はApacheサーバーのみで機能する設定ファイルです。そのためマイクロソフト製のIISサーバーなどでは機能しません。また、Apacheサーバーでも管理者が「.htaccess」を無効にしていることもありますので、設定前に一度サーバー管理者に確認することをおすすめいたします。

「.htaccess」の主な使い方

「.htaccess」は主に下記のようなケースで利用します。

1.リダイレクト設定

指定したドメイン・ディレクトリ・URLにアクセスしてきたユーザーやクローラー等をリダイレクトさせることができます。主に使われる転送としてはwwwサブディレクトの有無の統一や、index.htmlの有無の統一があげられます。また、アクセスしてきたデバイスの種類ごとに別のURLにリダイレクトさせることで、PC版のページとスマホ版のページを別URLで公開している場合に、振り分けることができます。

2.ウェブサイトメンテナンス時の503設定

ウェブサイトのメンテナンスを行うときなど、一時的にアクセスユーザーやクローラーからサイトを見れないようにしておきたい場合があります。しかしそのままアクセス拒否してしまうと混乱を招く原因になるので、「.htaccess」を利用してhttpステータスコードの「503 Service Unavailable」を返すことができます。503を返すことで、現在メンテナンスのためにサイトの表示ができないことを明示することができます。

3.カスタム404ページの設定

ウェブサイトから削除されたページのURLにアクセスがあった場合、サーバーはステータスコードの「404 Not Found」を返します。この場合基本的にはユーザーが利用しているブラウザが標準で持っている404ページ(下図)が表示されますが、ウェブサイトの管理者が自由にデザインした404ページを表示させることもできます。
このウェブページは通常のステータスコード200で返ってきたページと同じように表示されますが、実際に返ってくるステータスコードは404です。
カスタム404ページを表示するには、「.htaccess」に下記のように記述をします。

ErrorDocument 404 [表示したいカスタム404ファイルの相対URL]

4.BASIC認証の設定

「.htaccess」の設定の有効範囲にアクセスしてきたユーザーに、IDとパスワードでの承認を求めることができます。