WebサーバーやWebページを運用していると『.htaccess』という言葉を目にすることも多くなりますよね。
.htaccessとは何なのか?どんなときに使うものなのか?
.htaccessの作成方法や使い方など、.htaccessの基本をご説明します。
.htaccessとは?
「.htaccess」(ドットエイチティアクセス)とは、Webサーバーの設定ファイルです。
Apache(アパッチ)を用いたWebサーバーにおいて、ディレクトリ単位で様々な設定を行うことができます。
通常、Apacheでは「httpd.conf」という設定ファイルで各種制御を行いますが、httpd.confはWebサーバー全体の制御を行っているため、サーバー管理者しか変更することができません。
httpd.confで.htaccessの利用を許可している場合に限り、サーバー管理者だけではなく、そのサーバーで運用されている各サイトのサイト管理者でもApacheの設定変更(一部)を可能にしたのが.htaccessです。
ですので、レンタルサーバーなどにおいては、Webサーバー全体の制御を行うhttpd.confは変更できませんが、.htaccessを作成、編集することで自分が運用するサイトの設定(一部)を変更することができるようになります。
.htaccessはどんなときに使う?
では.htaccessはどのような設定が可能で、どんなときに使用するのでしょうか?
Webサイトなどにアクセスする際のユーザー認証
特定のディレクトリにIDとパスワードを設定することで、Webサイトなどへアクセスした際に認証を行うことができます。(ベーシック認証といいます。)
例えば、次のようなときに使用します。
- 公開前のサイトを特定のユーザーとのみ共有したい場合
- すでに公開しているサイトでIDとパスワードを知っている人だけにアクセスさせたい場合
リダイレクト
指定したURLにアクセスしたユーザーを別のURLにリダイレクト(転送)することができます。
リダイレクトは次のような場合に役立ちます。
- URLの変更やドメインの移転を行う場合
- URLの正規化を行う場合
- 一時的に別ページに誘導したい場合
URLの正規化とは同じページを表示する複数のURLをひとつに統一させるものです。
SEOの観点からも重要視され、例えば以下のようなURLは一般的には同じ内容が表示されますが、検索エンジンからは別のページとして認識されます。
- http://○○○○.com/
- http://○○○○.com/index.html
- http://www.○○○○.com/
- https://○○○○.com/
URLの正規化はこれら複数のURLをひとつのURLにリダイレクト(転送)させるような設定を行います。
特定のIPアドレスやドメインからのアクセス制御
特定のIPアドレスやドメインからのアクセスを、許可したり拒否したりすることができます。
404 Not Foundエラーメッセージなどのカスタマイズ
アクセスされたURLにページが存在しない場合は404 Not Foundエラーのメッセージが表示されます。
他にもサーバが混雑している際には503 Service Temporarily Unavailableエラーが表示されます。
これらのエラーメッセージのページを独自のエラーページにカスタマイズすることができます。
.htaccessを使うための条件
上でも説明しましたが、.htaccessを使うためには次の2つの条件が必要です。
- WebサーバーでApacheを使用していること
- httpd.confで.htaccessの利用を許可していること
.htaccessはApacheで動作しますので、利用しているWebサーバーがApacheで動作しているかを確認してください。
また、httpd.confで.htaccessの利用を許可していることが必要です。
サーバー管理者に.htaccessの利用が許可されているかを確認してください。
レンタルサーバーなどを利用している場合は、サポート窓口やQ&Aページで.htaccessの利用が可能か確認してみましょう。
.htaccessの作成方法と使い方
基本的な.htaccessファイルの作成方法と使い方を説明します。
.htaccessファイルの作成方法
.htaccessファイルはテキストファイルのため、メモ帳などのテキストエディタを開いて「.htaccess」というファイル名で保存するだけで作成できます。
ただ、.htaccessというファイル名で保存しようとすると、「.」(ドット)から始まるファイル名では保存できない場合があります。
その場合は、example.htaccessやhtaccess.txtなど仮のファイル名で一旦保存し、Webサーバーにファイルをアップロードしてから「.htaccess」にファイル名を変更すればOKです。
.htaccessファイルに記述する際の注意点
.htaccessファイルに設定内容を記述する際は以下の点に注意してください。
文字コードはUTF-8のBOM無しにする
文字コードはUTF-8のBOM無しで保存してください。
また、改行コードはLFで保存しましょう。
最後に必ず改行を入れる
ファイルの記述の最後には必ず改行を入れましょう。
改行を入れないと最後の記述が有効にならない場合があります。
改行は2行以上あっても問題ありませんので、数行程度の空行をファイルの末尾に入れておきましょう。
.htaccessファイルの設置場所と設定の適用範囲
.htaccessファイルは設置する場所によって設定を適用できる範囲が変わってきます。
.htaccessの適用範囲は、ファイルを設置したディレクトリとその配下のディレクトリ(サブディレクトリ)になります。
例えば以下のようなディレクトリの場合、ディレクトリ「/A/」に.htaccessを設置すると、適用範囲はディレクトリ「/A/」と、そのサブディレクトリ「/A/A-a/」になります。

上位のルートディレクトリ「/」や並列するディレクトリ「/B/」とディレクトリ「/C/」には影響しません。
また、以下のようにディレクトリ「/A/」とそのサブディレクトリ「/A/A-a/」にそれぞれ.htaccessを設置することも可能です。

ディレクトリ「/A/」とそのサブディレクトリ「/A/A-a/」にそれぞれ.htaccessを設置する場合、サブディレクトリ「/A/A-a/」においては、ディレクトリ「/A/」の.htaccess(①)の内容と、自身のディレクトリにある.htaccess(②)の内容がどちらも適用されることになります。
ただし、2つの.htaccess(①と②)に同じ設定項目に関する記述があった場合は、より下位のディレクトリにある.htaccess(②)の内容が優先的に適用されます。(.htaccess(①)の記述内容が上書きされます。)
まとめ
.htaccessとは、ディレクトリ単位で様々な設定を行うことができるWebサーバーの設定ファイルです。
.htaccessとは何なのか?どんなときに使うものなのか?.htaccessの作成方法や使い方など、.htaccessの基本を説明しました。
.htaccessファイルの適用範囲を考えながら、適切なディレクトリにファイルを設置しましょう。