Nós configuramos um web site com SSI para arquivos .html no Apache / 2.2.19 no CentOS 5.5 Linux. Funciona bem, mas ocasionalmente obtém 403 para a página raiz (index.html servido como um índice de diretório). Nenhum sistema de arquivos muda quando a página funciona, não funciona e depois funciona novamente.
Quando não funciona, é como se o Apache tivesse decidido que o arquivo index.html não existe, por isso, tenta exibir uma listagem de diretórios, mas isso é intencionalmente negado pela nossa configuração.
O log de erros específico do Apache virtualhost contém entradas como:
[Tue Aug 09 03:10:47 2011] [error] [client 66.249.72.3] Directory index forbidden by Options directive: /main/directory/
O log de erros gerais do Apache não contém nada.
O log de acesso específico do Apache virtualhost contém entradas como:
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)"
Distribuição geral:
# fgrep 'GET / ' 'ls -tr domain-access_log*' | cut -d ' ' -f 9 | sort | uniq -c
1339 200
1 206
31 304
29 403
A configuração do Apache parece 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>