ディレクトリごとの基本設定、4回目(06-07)

ソースからインストールするとドキュメントルートは /usr/local/apache2/htdocs になる。httpd.conf では次のように書かれている。

<Directory "/usr/local/apache2/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

Options

Optionsで指定できる機能をスペースで区切って並べる。

Options 機能1 機能2 ...

(何も設定したくない)
Options None
(すべて指定したい〜ただし MultiViewsはできない)
Options ALL
Optionsで指定できる機能 内容
ExecCGI CGIの実行を許可する
FollowSymLinks 設定しているディレクトリ以下にあるファイルやディレクトリへのリンクを有効
Includes SSI実行を許可する
IncludesNOEXEC 「#exec cmd」「#exec cgi」以外のSSIの実行を許可する
Indexes クライアントがアクセスしたディレクトリにindex.htmlファイルが存在しない場合、ディレクトリ内のファイルの一覧を表示
MultiViews コンテンツネゴシエーションで適切な言語のHTMLや画像が選択されるようにする
SymLinksIfOwnerMatch リンク先の所有者がディレクトリの所有者と同一の場合にリンクを有効にする
All MultiViews以外を有効にする
None すべてを無効にする

AllowOverride

Order allow, deny

allow from 192.168.1.1  ←192.168.1.1からのアクセスを許可
deny  from 192.168.1.1  ←192.168.1.1からのアクセスを拒否
allow from all          ←すべてのホストからのアクセスを許可

Order ではアクセス制限の評価順序を指定できる。

order allow, deny

とすると許可する指定が評価された後に拒否する指定が評価される。

(192.168.1.1からだけ許可し他はすべて拒否する)
order allow, deny
allow from 192.168.1.1
deny  all

(10.0.0.100 からは拒否し他は許可する)
order deny, all
deny from 10.0.0.100
allow all

とすると192.168.1.1からだけ許可し他はすべて拒否する。