特定のファイルやURLについて設定を施せるようにします。

 Apacheではディレクトリ以外にも,ファイルやURLに対して設定できます。また,各ディレクトリに「.htaccess」という設定ファイルを配置することで,そのディレクトリ以下の設定を変更できるようになっています。.htaccessファイルを利用した設定の書き換え方法についても紹介します。

ファイルを設定する<Files>

 <Directory>がディレクトリごとの設定を行えるのに対し,<Files>ではファイルごとの設定を施せます。

 <Files>の書式は図1のように記述します。例えば,

<Files security.html>

と記述すれば,security.htmlファイルの設定を施せます。各種設定項目には,アクセス制限を行うorder,allow,deny,各機能の許可を行うOptionsの一部などが利用できます。ただし,AllowOverrideは利用できません。

<Files 対象となるファイル>
各種設定項目
:
</Files>
図1●特定のファイルに対する設定を行う<Files>の書式
<Files>から</Files>までの設定項目が指定したディレクトリに適用される。

 例えば,security.htmlファイルについて,ローカル・ネットワーク(のアドレス)である192.168.1.0から192.168.1.255までのアクセスだけを許可したい場合は,図2のように記述します。

<Files security.html>
Order allow deny
allow 192.168.1.0/24
deny all
</Files>
図2●<Files>を用いたファイルの設定例
security.htmlファイルについて,192.168.1.0から192.168.1.255までのIPアドレスを持つホストからのアクセスは許可する設定例。

URLを設定する<Location>

 <Directory>や<Files>と同様,<Location>を使うと,URLに対して設定を施せます。書式は図3のように記述します。例えば,

<Location/project>

と記述すれば,ドキュメント・ルート上にあるprojectディレクトリの設定が行えます。

<Location 対象となるURL>
各種設定項目
:
</Location>
図3●URLについて設定を行う<Location>の書式
<Location>から</Location>までの設定項目が指定したディレクトリに適用される。

 各種設定項目には,<Directory>と同様,order,allow,deny,Optionsなどが利用できます。ただし,<Files>と同じように,AllowOverrideは利用できません。

 <Location>を利用して,ドキュメント・ルート上にあるprojectディレクトリでリンク先の参照とCGIの実行を許可し,なおかつ10.0.0.0から10.0.255.255のIPアドレスを持つホストからのみアクセスを許す場合は,図4のように記述します。

<Location/project>
Options ExecCGI SymLinksIfOwnerMatch
Order allow deny
allow 10.0.0.0/16
deny all
</Location>
図4●<Location>を用いたURLの設定例
ドキュメント・ルート上のproject ディレクトリについて,10.0.0.0から10.0.255.255までのホストのアクセスを許可し,CGIの実行とリンク先の参照を許可する設定例。