web-dev-qa-db-ja.com

Apache Webサーバーが断続的に403:「Optionsディレクティブで禁止されているディレクトリインデックス」と304を提供します

CentOS 5.5Linux上のApache/2.2.19で.htmlファイル用のSSIを使用してWebサイトを構成しました。正常に動作しますが、ルートページの403を取得することがあります(index.htmlはディレクトリインデックスとして機能します)。ページが機能するとき、機能しないとき、そして再び機能するときの間でファイルシステムは変更されません。

それが機能しない場合、Apacheがindex.htmlファイルが存在しないと判断したため、ディレクトリリストを提供しようとしますが、これは構成によって意図的に拒否されています。

Apache仮想ホスト固有のエラーログには、次のようなエントリが含まれています。

[Tue Aug 09 03:10:47 2011] [error] [client 66.249.72.3] Directory index forbidden by Options directive: /main/directory/

Apacheの一般的なエラーログには何も含まれていません。

Apache仮想ホスト固有のアクセスログには、次のようなエントリが含まれています。

66.249.72.3 - - [09/Aug/2011:03:10:47 +0100] "GET / HTTP/1.1" 403 230 "-" "SAMSUNG-SGH-E250/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2.0 (compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html)"

全体的な分布:

# fgrep 'GET / ' `ls -tr domain-access_log*` | cut -d ' ' -f 9 | sort | uniq -c
   1339 200
      1 206
     31 304
     29 403

Apacheの設定はlkeに見えます:

<VirtualHost ip.address:80>
  ServerName domain.here

  DocumentRoot /main/directory
  ErrorLog logs/domain-error_log
  CustomLog logs/domain-access_log combined
  DirectoryIndex index.html

  AliasMatch ^/(robots\.txt|sitemap.*\.xml(?:\.gz)?)$ /other/directory/$1

  CacheEnable disk /
  CacheDisable /sitemap.xml.gz
  CacheDisable /robots.txt
  CacheIgnoreHeaders Set-Cookie
  CacheIgnoreNoLastMod On

  AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/x-javascript

  <Directory /main/directory>
    Options Includes
    AddOutputFilter INCLUDES .html
    Order allow,deny
    Allow from all
  </Directory>

  <Directory /other/directory>
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>
4
Duncan Harris

これは仮想サイトであるため、httpd.confレベルの設定も考慮する必要があります...オプションマルチビューをどこかに設定していますか? SSIと言語ネゴシエーションにより、存在しないindex.htmlの代替バージョンを提供しようとする可能性があります。そして、同じことが原因で、必要なErrorDocumentが見つからず、さらに奇妙な結果が得られる可能性があります。

下位レベルの書き換えが行われていますか?

oldあなたが含めたログラインは携帯電話のブラウザです。モバイルWebブラウザを扱う他のApache処理はありますか? HTTP_USER_AGENTに一致する書き換えを行って、リクエストを他の場所に送信していますか?

4
Mark

ディレクトリ宣言、特に/ main/directoryに「インデックス」オプションを追加する必要があるようです。

0
Andrew Case