.htaccessとは

サイト制作に関わっていると、
.htaccessというドット(.)で始まるファイルを利用する機会も多いと思います。

私は、普段仕事ではWindowsのパソコンを使用していますが、
Windowsだとドット(.)始まるファイルは作成できないので、
何か不思議な感じのするファイルです。

こちらは何かというと、
ApacheをWEBサーバとして採用している場合に利用できるファイルで、
・URLのリダイレクト設定であったり、
・ベーシック認証の設定、
・PHPに関する諸々の設定
などなど、
様々な設定を行えるとても便利なファイルです。

さらに、
サーバを複数のサイトで共有して利用していても、
サイト毎に設定を行えるので、

私達のようなWEB屋にはとっては非常にありがたいファイルです。

因みに、最近だとNginxというWEBサーバを利用しているサーバも増えてきていますが、
その場合は使用できません。

あくまで、Apacheで利用できるファイルになります。

それと、WordPressのパーマリンク設定でも利用するので、
WordPressでサイトを構築されている方にとっては、必要不可欠なファイルになります。

.htaccessはどのサーバでも利用できるの?

.htaccessは許可されたサーバじゃないと利用はできません。

今は、ほとんどのレンタルサーバで利用できるようになっていますが、
利用できないサーバ

利用はできるけど、設定できる内容に制限がある
といった場合もあるので、
レンタルサーバを借りる場合には、念の為、事前に調べておいた方がいいです。

因みに、大手のサイト制作を請け負った場合には、
制作会社に勝手なことをやられると困るので、
大概の場合、.htaccessで設定できることは限られています。

レンタルサーバと同レベルで.htaccessを使うことを前提にサイトを制作すると、
本番環境にアップロード時にいろいろと痛い目に合うので注意して下さい。

.htaccessではどんな設定を行えるの?

いろいろな設定ができますが、代表的なものだと、
・ベーシック認証の設定
・URLのリダイレクト設定
・URLの正規化
・サイトを一時的にメンテナンス中にする
・サイトへのアクセス制限
・PHPに関する設定
などです。

ベーシック認証の設定

ベーシック認証はよく利用しますね。
例えば、
・公開前のサイトを外部から見れないようにしたり、
・簡易的な認証機能を付けて、IDとパスワード知っている特定の人間しか見ないようにしたり
といった場合には、、
.htaccessで簡単に設定を行えるので、助かります。

URLのリダイレクト設定

・ページのURLが変更になったり、
・サイトリニューアルに合わせて不要なページが出てきたり
といった場合には、
そのままにせずに、
通常は301リダイレクト設定を行いますね。

そのまま放置されている場合もあるようですが、
やはりSEO上必要なリダイレクト設定になるので、
必ず設定しておくことをおすすめします。

因みに、常時SSL通信設定を行う場合にも301リダイレクトを行うので、
その場合にも利用できます。

URLの正規化

URLの正規化とは、同一のページで複数のURLが存在する場合に、1つのURLに統一することを言います。

例えば、
トップページであれば、
①、http://sample.com/
②、http://sample.com/index.html
③、http://www.sample.com/
④、http://www.sample.com/index.html
というURLへアクセス可能ですが、
wwwのあり・なしindex.htmlのあり・なしの違いだけでも、Googleはそれぞれ別ページとみなしてしまうので、
本来は同一ページにも関わらず、各URLへ評価が分散してしまいます。

もう少し説明すると、
①のGoogleからの評価が「2」、②のGoogleからの評価が「3」だとすると、合計で「5」になる訳でありません。
あくまで、①の評価が「2」、②の評価が「3」のままです・

これは、SEO上かなりまずいので、
ユーザーがどのURLからアクセスしてきても、必ずどれか1つのURLに統一リダイレクトするように設定を行います。

例えば、①のURLへ統一することで、そのURLへ評価が集中することになります。
それにより、上記の例で説明すると、Googleからの評価が「5」になります。

サイトを一時的にメンテナンス中にする

大幅なリニューアルなどで、コンテンツを入れ替える際に、
やむなくサイトの表示をメンテナンス中に切り替えることがあると思います。

勿論、作業者はチェックなどを行わないといけないので、
IPアドレスで制限して、社内からのアクセスのみ許可する必要があります。

そんな場合にも、
よく.htaccessを使って設定を行います。

サイトへのアクセス制限

不正なアクセスがあった場合に、
そのアクセス元のIPアドレスを特定して、サイトへのアクセスをブロックする場合にも、
.htaccessを利用できます。

その他にも、
・特定の国からのアクセスを制限したり、
・日本国内以外からのアクセスを制限したり、
・管理画面の様な外部からアクセスされるとまずい画面には、特定のIPアドレスからしかアクセス出来ないようにしたり、
と、
様々なパターンで、
アクセス制限を掛けることができます。

PHPに関する設定

PHPの大元の設定変更は、php.iniというファイルを編集します。

ただし、このファイルを編集すると、共有している他サイトへも影響するので怖いです。

その場合には、.htaccessを使って設定を行うことも可能です。

例えば、
開発中のサイトでPHPのエラーを表示させたり
表示させるPHPのエラーレベルを変更したり、
内部エンコードを変更したり、
いろいろと設定を行えます。

共用サーバだと、ほとんどの場合php.iniを編集できないので、
そのような場合にも、.htaccessで設定を変更できると助かります。

最後に

Apacheには、httpd.confという設定ファイルがあり、
.htaccessで行っている設定というのは、本来はこちらのファイルで行うものです。

ただし、httpd.confの設定変更を間違えると、全サイトに影響が出たりする場合もあるので、
非常に神経を使います。

それに、編集の都度、Apacheを再起動する必要があるので、
頻繁に触るべきではないファイルです。

その為、私は.htaccessで設定できることは、
.htaccessで設定を行うようにしています。

それと、もう一点!

.htaccessは非常に便利なファイルですが、
誰でも簡単に扱えるファイルではなので、注意しておいてください。

設定を間違えれば、
インターネットサーバエラーにもなりますし、
気づかないところでエラーが発生していたりもします。

これからWEB制作や運営に携わっていく方は必ず使いこなせるようになっておくべきですが、
意味も分からず他サイトからコピペして貼り付けるのではなく、
コピペするにしても、
必ず内容を理解した上で記述して下さい。