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>
これは仮想サイトであるため、httpd.confレベルの設定も考慮する必要があります...オプションマルチビューをどこかに設定していますか? SSIと言語ネゴシエーションにより、存在しないindex.htmlの代替バージョンを提供しようとする可能性があります。そして、同じことが原因で、必要なErrorDocumentが見つからず、さらに奇妙な結果が得られる可能性があります。
下位レベルの書き換えが行われていますか?
oldあなたが含めたログラインは携帯電話のブラウザです。モバイルWebブラウザを扱う他のApache処理はありますか? HTTP_USER_AGENTに一致する書き換えを行って、リクエストを他の場所に送信していますか?
ディレクトリ宣言、特に/ main/directoryに「インデックス」オプションを追加する必要があるようです。