[Apache] Options と AllowOverRide の設定値を改めて整理してみる

[Apache] Options と AllowOverRide の設定値を改めて整理してみる

そういえば最近テレビを付けても APEC と村上佳菜子とてっぱんしか見ていない気がする nakamura です。てっぱんおもろいな〜。ゲゲゲも良かったけど。

Apache をさわる際に結構な確率で設定するディレクティブに Options と AllowOverRide があるかと思います(少なくとも僕はそうです)。ただしこの辺りの設定はともするとあまり深く考えず、毎度同じ設定のままコピペで済ませてしまったりしていませんか?かくいう僕も、本番ではさすがにないですが、社内の開発環境を作る際に深く考えずに設定している自分に気付く事があります。

これじゃいかん!という事で今さらながら改めてこの 2 つのディレクティブの設定値を整理してみました。意外と知らないものもあったりなかったり、、、

Options

Options は任意のディレクトリに対して使用できる機能を設定する為のディレクティブです。以下の値が指定可能です。

None

何も設定されません。特殊な機能を一切使わない時はこれを指定しましょう。

All

MultiViews を除いた全ての機能が有効に。Options 自体を設定しない場合、これになります。

ExecCGI

cgi の実行を許可します。ScriptAlias ディレクティブを使わずに cgi を使用する際に設定します。

FollowSymLinks

シンボリックリンクのリンク先を Apache がたどれるようにします。

Includes

SSI の使用を許可します。

IncludesNOEXEC

SSI は許可しますが、SSI から外部 cgi を呼び出すのを禁止します。

Indexes

ディレクトリに対するリクエストに対して、DirectoryIndex で指定したファイル(index.html 等)が存在しない場合に、ディレクトリ内ファイルの一覧を表示します。

MultiViews

コンテントネゴシエーション を有効にします。ブラウザから送信される HTTP ヘッダにあわせてレスポンスを変える為の機能です。例えば Accept-Language ヘッダに合わせて、日本語のファイルを返したり、英語のファイルを返したり。

SymLinksIfOwnerMatch

シンボリックリンクのリンク先がシンボリックリンク自体と同じオーナーである場合のみ、リンク先をたどれるようにします。

改めて整理してみると必ず使う機能ってひとつもないよな~と思います。基本は None で用途に合わせて最低限の設定をするのが理想ですね。

AllowOverRide

AllowOverRide は .htaccess で使用できるディレクティブを指定する為のディレクティブです。以下が指定可能です。

None

.htaccess では何も設定できません。

All

.htaccess で設定可能なものは全て有効になります。

AuthConfig

認証関連のディレクティブの使用を許可します。.htaccess を使って基本認証など掛ける場合に必要です。

FileInfo

ドキュメントタイプやドキュメントのメタデータを制御するディレクティブの使用を許可します。よく使うところで言うと ErrorDocumentSetEnvIf, BrowserMatch, mod_rewrite 関連でしょうか。

Indexes

ディレクトリインデックス関連のディレクティブの使用を許可します。AddIcon, DirectoryIndex など。

Limit

アクセス制御関連のディレクティブの使用を許可します。IP 制限を .htaccess で設定するのに必要です。

Options[=Option,...]

Options ディレクティブの使用を許可します。.htaccess で設定するオプションをカンマ区切りで指定する事で設定可能になります。

こっちも深く考えずに All にしがちですが、全然そんな必要ないですね。フレームワークで mod_rewrite が必要なら FileInfo、基本認証掛けるなら AuthConfig、IP 制限掛けるなら Limit といった具合でしょうか。

終わりに

特に .htaccess は ファイルをひとつ上書くだけで Apache の再起動を伴わずに各種設定を変更できてしまう、便利だけどとっても怖い代物です。必要最低限の項目に制限しておけばある程度リスクを減らせるのでぜひ参考にしてみてください。

参考 URL

  • このエントリーをはてなブックマークに追加

この記事を読んだ人にオススメ