.htaccessの設定

Apacheのサーバの知識がそれほどなくても気軽に使える、.htaccessの記述について説明します。

独学!未経験からWebデザイナーになる!! > テクニカルノート > .htaccessの設定

.htaccessの設定

※当サイトは、アフィリエイト広告を掲載し、収益を得て運営しています。

.htaccessは、Apacheの設定をディレクトリ単位で制御できる特別なファイルです。サーバの知識がそれほどなくても気軽に使えるため、Webデザイナーが実務で使う機会も多いでしょう。このカテゴリでは、そんな.htaccessの各種記述方法についてご紹介していきます。

まず当ページでは、.htaccessについての設置方法や有効範囲など、基礎知識的なことを解説します。

.htaccessを使う理由

実は、.htaccessを利用しなくても、httpd.confをいじればサーバの設定はできます。それでも.htaccessを使う理由はどこにあるのでしょうか。

Webデザイナーがサーバの設定をするのに最適

実際の本番Webサーバーは、専用サーバーや仮想専用サーバー(VPSと言います)でないと基本的にhttpd.confをいじれません。それに、もしいじれたとしても、システムに関わる重要な設定ファイルなので、サーバ管理者が作業すべき部分です。もし設定を間違ってしまったら、サーバやWebシステムがうまく動作しなくなってしまう危険性もありますからね。

.htaccessは、httpd.confに比べて比較的安全に設定することができます。もちろん、.htaccessでも、記述を誤るとエラー(500 Internal Server Error)となってWebサイトが表示されなくなってしまいますが、分からなくなったら.htaccessを削除するか復元すれば、すぐに元通りに戻るので安心です。

したがって、Webデザイナーとしての実務では、httpd.confをいじるよりも.htaccessをいじる機会の方が多いでしょう。逆に言えば、.htaccessは、Webデザイナーが簡単なサーバの設定をするのにも最適なのです。

何よりも簡単だから

とは言っても、大きな理由の一つに、何よりも簡単だからと言うこともあります。わざわざ設定を変更するのにhttpd.confをいじってアパッチをリスタート(再起動)させて……などとしていたら面倒です。.htaccessならちょちょっと記述して、すぐに設定が反映されますから非常に簡単なのです。

実は.htaccessを有効にすると、上位ディレクトリの階層に.htaccessが存在するかを捜査するので、その分オーバーヘッド(負荷)が生じるようです。それでも利用されるのは、やはり何より簡単だから。それにつきると思います。

.htaccessの基本

.htaccessの有効範囲

.htaccessの有効範囲は、.htaccessを設置したディレクトリおよび、その下層ディレクトリに対して適用されます。上層ディレクトリと下層ディレクトリで、(同じ項目の)設定が異なる場合は、より下層ディレクトリにある方が優先して適用されます。

.htaccessを有効にする

.htaccessを使うには、httpd.confにて.htaccessの利用が有効なっている必要があります。設定方法については、.htaccessを有効にするをご覧ください。

.htaccess設置方法

Dreamweaver等のエディタで、ファイル名を[ .htaccess ]として新規ファイルを作成してください。そのファイル内に、当カテゴリ内でご紹介するような各種設定を書いていきます。

なお、Windowsではエクスプローラから.htaccessを作ろうとすると、「ファイル名を入力してください」と怒られてしまいます。ドットの前にファイル名が無いと見なされて、エラーになってしまうんですね。必ずDreamweaver等のエディタから行ってください。

Macの方もDreamweaver等のエディタから作成していただきたいのは同様なのですが、別の問題があります。.htaccess作成後、Finderから該当ファイルを探そうとしても見つからないのです。これは、MacはUNIX系のOSだというのが原因です。UNIX系のOSは、ドットから始まるファイルを不可視ファイルとしてしまうので、そのままでは表示されません。

それでもいいという方はそのままでもいいのですが、不便だと思われる方はTinkerToolという有名なソフトで対策できます。同ソフトをインストールし、Finder設定から、[ 隠されたファイルおよびシステムファイルを表示する ]にチェックを付ければそれでOKです。

セキュリティの向上

.htaccessはサーバ側の設定で、アドレスを直打ちしても、内容を見られないようになっていることが一般的です。しかし、セキュリティの甘いサーバの場合、それが有効になっていない場合があるかもしれません。

.htaccessのアドレスを直打ちしてみて、万一アクセスできてしまった場合は、最上部ディレクトリに、下記の指定を記載することで、.htaccessへのアクセスを拒否できます(ここでは、.htpasswdも併せて拒否しています)。

# .htpasswdと.htaccessへのアクセスを拒否する
<Files ~ "^\.(htpasswd|htaccess)$">
Deny from all
</Files>

最終行には改行を入れる

.htaccessの最終行には、改行を入れてください。

#はコメント行

#から始まる行は、コメント行です。したがって、動作に影響を与えることはありません。

改行コード

改行コードについてはサーバのOSによるようですが、個人的には、UNIX系OSでLF+CRの改行コードを使ってもエラーになったことはありません(Mac OSX LeopardにてCRでは設定が反映されないことがありました。こちらの環境ではLFを推奨します)。エラーが発生した際は、UNIX系のOSはLF、Windows系のOSはLF+CRなどとお使いのOSに合わせてみてください。

文字コード

今までの私の経験からすると、Windows環境のデフォルトであるShift-JISを普段使っていますが、どんな文字コードでもエラーになったことはありません。.htaccessには通常日本語(2byte以上の文字)を使うことがないからかもしれません。文字コードと同様、エラーが発生した際は、UNIX系のOSはEUC-JP、Windows系のOSはShift-JISなどと試してみてください。

パーミッション

大抵はデフォルトでいけると思います。もしエラーになる場合は、お使いのレンタルサーバー指定のパーミッションに変更してみてください。

↓もし参考になりましたら、シェアしていただけると嬉しいです(^-^)

12/06/30 facebookページ開設しました。RSS代わりにも使いたいと思います。

テクニカルノート
環境環境のインストール
Apacheのインストール for Windows
XAMPPのインストール for Windows
MAMPのインストール for Mac
Perl(ActivePerl)のインストール for Windows
PHPのインストール for Windows
MySQLのインストール for Windows
PostgreSQLのインストール for Windows
テスト用Webサーバーの設定
外部からのアクセスを制限する
ドキュメントルートを変更する
バーチャルホストを設定する
.htaccessを有効にする
CGIを有効にする
.htaccessの設定
エラーページを指定する
特定のファイル・ディレクトリのアクセスを拒否する
簡易的なユーザ認証をする