こんにちは。
職人見習いの木村です。
Apacheの設定ファイルが書き換えられないときには、.htaccessをよく使います。
今回は、.htaccessの代表的な利用方法を紹介します。
■.htaccessファイルを有効にする
まずは、Apacheの設定で、.htaccessファイルを使えるようにしなければなりません。
デフォルト設定では、
Options FollowSymLinks AllowOverride None
上記のように無効になっているので、下記のように設定しなおします。
Options All AllowOverride All
今回は、Allに設定しましたが、.htaccessで設定したい項目のみ許可する書き方もあります。
AuthConfig | 認証に関する設定を許可 |
FileInfo | ファイルや言語、MIMEなどに関する設定を許可 |
Indexes | インデックスの設定を許可 |
Limit | アクセス制限の設定を許可 |
All | 全ての設定を許可 |
さて、.htaccessが使えるようになったので、色々な設定をしていきます。
■「/」でアクセスした際に呼び出されるファイルを変更する。
通常、URLに「/」でアクセスすると、index.htmlが呼ばれますが、他のファイルを呼び出すことができます。
(例)
DirectoryIndex index.cgi index.php index.html
上記の方に設定すると、まずはindex.cgiが呼び出され、index.cgiが存在しない場合は、index.phpが呼び出され、index.phpも存在しない場合は、index.htmlが呼び出されます。
■IPアドレスによるアクセス制限をする
まだ、開発途中であったりした場合に、見られたら困るページがある場合があった場合は、アクセス制限をかけるのが一般的です。
アクセスするホストが決まっている場合は、特定のホストのみアクセスできるような設定ができます。
(例)
order deny,allow deny from all allow from XXX.XXX.XXX.XXX
allow fromの後に許可したいIPアドレスを設定することで、設定したIP以外からのアクセスは不可となります。
■エラードキュメントを設定する
ページが存在しない等のエラーが帰ってきた際に、指定のページにリダイレクトさせることができます。
ErrorDocument 401 /error/401.html ErrorDocument 403 /error/403.html ErrorDocument 404 /error/404.html ErrorDocument 500 /error/500.html
■リダイレクト設定する
指定したURLにアクセスした際に、別のURLにリダイレクトさせる事ができます。
RewriteEngine on ^/test/ http://www.example.com [R]
上記の場合は、/test/にアクセスした場合に、http://www.example.comにリダイレクトします。
上記のように、Apacheの設定ファイルをいじらなくても、.htaccessを使えば手軽に設定を変更することができます。
ただ、手軽にできる分設定する際には、細心の注意を払わなければなりません。
※この記事は、なかの人(moresmileman)が書いています。