Apacheのトラブルを解決する10のヒント

文:Scott Lowe(TechRepublic) 翻訳校正:石橋啓一郎
2008-01-24 08:00:00
  • このエントリーをはてなブックマークに追加

4:AllowOverrideでの混乱を避ける

 どのように自分のウェブサイトを運営したいかにもよるが、.htaccessファイルを利用することでApacheサーバの振る舞いを選択的に変えることができる。簡単に言えば、.htaccessファイルは、そのファイルが置かれているフォルダにだけ影響を与える設定変更を行うことのできるファイルだ。例えば、httpd.confですべてのディレクトリの「Indexes」を無効にすれば、訪問者はディレクトリのリストにはアクセスできなくなる。その上で、1つのフォルダにだけこのアクセスを許したくなるかもしれない。この場合、「Options Indexes」命令を入れた.htaccessファイルを作ればよい。

 読者は.htaccessが問題になり得る理由を理解し始めたかもしれない。まず、非常に大きなサイトでは、これらのファイルを把握しておくことは非常に困難な仕事だ。機能的な問題が起きた場合、設定の問題が起きる可能性のある場所は1カ所ではなくなり、ディレクトリ構造を追って.htaccessファイルを探さなければならなくなる。

 第2に、これらのファイルを使うことを許すと、管理者のようなApacheに対する腕前を持たないユーザーがウェブサイトに安全でない変更を行ってしまう可能性がある。

 最後に、.htacessを使うと、ウェブサーバがカレントディレクトリからルートディレクトリまでのすべての上位ディレクトリの.htaccessファイルを探さなければならなくなり、性能が落ちてしまう可能性がある。

 十分な理由がなければ、.htaccessファイルを使うのは避けるべきだ。その代わり、httpd.confファイルの「Directory」セクションで、自由にディレクトリごとのオプションを設定できるようにする方がいい。

 一方で、もし.htaccessファイルを使っているのにそれが有効になっていないようなら、httpd.confファイルを見て「AllowOverride」命令が「None」に設定されていないかを確認する。AllowOverride命令のタイプを操作することで、.htaccessファイルで設定できるオプションを制限することができる。表BはApacheの文書に基づくもので、AllowOverrideで設定可能な項目のリストが掲載されている。必要なオプションのみを使うこと。

表B
タイプ 説明
All  この表でリストされているすべての命令を利用可能にする。これはユーザーがhttpd.confの設定を上書きし、シンボリックリンクを辿れなくするなどの設定を無効にできるようにするため、一般にリスクが大きいと考えられている。
None .htaccessファイルを利用できなくする。
AuthConfig 認証関係の命令を利用できるようにする。(AuthDBMGroupFile、AuthDBMUserFile、AuthGroupFile、AuthName、AuthType、AuthUserFile、Requireなど)
FileInfo ドキュメントタイプを制御する命令を利用可能にする。(DefaultType、ErrorDocument、ForceType、LanguagePriority、SetHandler、SetInputFilter、SetOutputFilter、および mod_mime Add* 命令と Remove* 命令など)
Indexes ディレクトリインデックスを制御する命令を利用可能にする。(AddDescription、AddIcon、AddIconByEncoding、AddIconByType、DefaultIcon、DirectoryIndex、FancyIndexing、HeaderName、IndexIgnore、IndexOptions、ReadmeNameなど)
Limit ホストへのアクセスを制御する命令を利用可能にする。(Allow、Deny、Order)
Options 特定のディレクトリにおける機能を制御する命令を利用可能にする。(Options、XBitHack)
このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]