Web担当者だったら知っておきたい!.htaccessでできること

SEO

Webサイトの運営に携わっていて、「.htaccess」という言葉を見聞きしたことはないでしょうか。なんだか聞き馴染みのないこの言葉の意味を、あなたは理解できていますか?

この記事では. .htaccessとは具体的にどのようなもので、何のために使われているのか、そして利用する際にはどういった点に注意すべきなのかといったことについて、わかりやすく解説します。

 

.htaccessとは

.htaccessは、Apache(アパッチ)などのWebサーバの動作を制御するために使用される、一種の設定ファイルです。Webサーバというのは、簡単にいえばWebサイトを公開するために必要な機能を提供するためのソフトウェアです。
私たちは通常、このWebサーバ上にHTMLファイルやCSSファイル、画像ファイル等を置いてWebサイトを公開しています。

たいていのアプリケーション・ソフトウェアがそうであるように、Webサーバというソフトウェアも「設定ファイル」を使って細かい属性や動作をカスタマイズできるようになっています。この記事で解説する.htaccessも、そうした用途で使われる設定ファイルの一つです。

.htaccessファイルの作り方

.htaccessの実態はテキスト形式のファイルです。従って、Windows付属のメモ帳(Notepad)アプリやサクラエディタ、秀丸のようなテキストエディタを使って、簡単に.htaccessファイルを作成することが可能です。

テキストエディタで作成した.htaccessファイルは、FTPツール等を使ってWebサーバ上の任意のディレクトリへアップロードするのですが、この際に注意することが一つあります。

それは、.htacecssファイルのファイル名は、必ず「.htaccess」とする必要があるということです。

ファイルを作成するのに使ったOSの種類やバージョンによっては「.htaccess」という名前でファイルを作ることができず、「htaccess.txt」のようになってしまうことがありますが、このような異なるファイル名をつけると、Webサーバは設定ファイルとして認識してくれません。

.htaccess という名前でファイルを作成できない場合、まずは「htaccess.txt」などの名前で作成しておいて、Webサーバにアップロードした後でファイル名を変更してください。

 

.htaccessで何ができるのか

.htaccesがWebサーバ用の設定ファイルだということは分かりましたが、では、.htaccessを使って具体的にどのような設定を行えるのでしょうか?.htaccessで設定できることは色々とありますが、ここではWebマーケティングに関連の深い用途をいくつかご紹介しておきましょう。

 

①アクセス制限(BASIC認証)

.htaccessを使うと、BASIC認証という方法で任意のディレクトリ配下のコンテンツにアクセス制限をかけることができます。

BASIC認証は文字通りBASIC(基本的な)認証の手法で、Webサイト上の任意のディレクトリに対して最低限の簡易的な認証機能を実現するものです。BASIC認証を用いると、指定されたディレクトリにアクセスした人に対してIDとパスワードの入力エリアのついたダイアログボックスを表示し、認証情報の入力を求めることができます。

BASIC認証を利用する際は、そのために必要な定義情報を.htaccessに記述します。

htaccess_1.png 

 

②ファイル一覧表示の禁止

Webブラウザ経由でWebサーバにアクセスすると、指定したディレクトリ配下に置かれているディレクトリやファイルが一覧表示されてしまうことがあります。

社内の限られたメンバーだけが利用するような場合は別として、一般公開するWebサイトでこのようにファイルが「丸見え」の状態になっているのは、セキュリティ上あまりよろしくありありません。

そこで、通常はこうしたファイルの一覧表示を禁止する設定をしておきますが、このための設定も.htaccessを使って行うことができます。

③URLのリダイレクト

URLのリダイレクトを行う処理も、.htaccessに定義できます。

URLのリダイレクトとは、簡単にいえばあるURLに対するアクセスを別のURLへと転送することです。Webマーケティングに関連する範囲でいうと、Webサイトのドメインや構造を変更した際などに、SEO対策の一環としてしばしばURLのリダイレクト設定を行います。

こうしておくことで、検索エンジン上の古いリンクをクリックして訪問したユーザに新しいURLを案内することができます。

 

④カスタム404ページを表示する

URLを打ち間違えるなどして存在しないURLにアクセスしてしまい、「Page Not Found(お探しのページは見つかりませんでした)」というページに遭遇した経験はありませんか?

このようなページのことを、ページ不在のエラーコードである404にちなんで「404ページ」と呼びます。

 

ApacheのようなWebサーバにはデフォルトの404ページがあらかじめ用意されていますが、デフォルトの404ページはデザインも文言もそっけなく、ユーザに対して親切だとはお世辞にも言えません。

.htaccessを利用すると、ユーザからリクエストされたURLに該当するページがWebサーバ上に存在しない時に、独自に用意した404ページを表示させることができます。

 

⑤URLのwwwの有無を設定する

Googleなどの検索エンジンはwwwの有り/無しをそれぞれ別のURLとて扱うため、SEO的にはどちらかの形式に揃えることが推奨されています。この際の設定を、.htaccessを使って指定することができます。

 

⑥ディレクトリ毎のデフォルトページを変更する

Webブラウザのアドレス欄にURLを入力する際、ファイル名を指定せずにディレクトリ名までを入力した場合、通常はそのディレクトリ配下にある「index.html」という名前のファイルがデフォルトで表示されるようになっています。

.htaccessを使うと、このデフォルトのファイルを別の形式のファイル――たとえばindex.phpやindex.cgiなどに変更することができます。

htaccess_2.png

.htaccessはレスポンスを落とす?

このように様々な設定が行える便利な.htaccessファイルですが、実を言うと利用にあたってのデメリットも存在します。その一つは、.htaccessを利用するとWebサイトのレスポンスが悪くなる恐れがあるということです。

 

Webサーバ上で.htaccessを利用する設定にしていると、Webサーバはブラウザからのリクエストに応答する際に、各ディレクトリ内で.htaccessを検索します。この検索処理は.htaccessファイルが存在するかどうかに関わらず行われ、かつ、ファイルが存在した場合はアクセスのたびに.htaccessが読み込まれることになります。これにより余計な処理が増え、サーバの応答性能が低下する恐れがあるのです。

 

また、前述の通り.htaccessを利用してファイル一覧表示の可否ポリシーをディレクトリ単位で設定したりすることもできますが、その結果セキュリティが低下してしまう懸念もあります。

 

こうしたデメリットを回避するため、Webサーバの設定は.htaccessファイルではなくhttpd.confを使って集約的に設定を行うことが推奨されています(下記参照)。

Apache チュートリアル: .htaccess ファイル - Apache HTTP サーバ バージョン 2.2

ただし、たとえばWebサーバの領域をディレクトリ単位で区切ってユーザに提供するレンタルサーバなどでは、ユーザがメインの設定ファイル(httpd.conf)にアクセスすることができない場合があります。このような状況下では、特定の領域(ディレクトリ)配下だけに設定を行う目的で.htaccessが用いられることがあります。

.htaccessにできることは、全てhttpd.confを使って行うことができます。
自社でWebサーバを立てていて、httpd.confにアクセスが可能である場合は、.htaccessではなくhttpd.confで設定を行った方がよいことがほとんどです。Web担当者の独断で安易に.htaccessを使うのではなく、まずはサーバ管理者に相談した上で、どちらを使うのかを判断するようにするとよいでしょう。

 

以上、この記事ではWebサーバの設定ファイルである.htaccessについて解説しました。利用のメリットとデメリットをよく理解した上で、必要に応じて効果的に.htaccessを活用して頂ければと思います。