Веб-сервер Apache периодически обслуживает 403: "Индекс каталога, запрещенный директивой Options" и 304
Мы настроили веб-сайт с SSI для файлов.html в Apache/2.2.19 в CentOS 5.5 Linux. Работает нормально, но иногда получает 403 для корневой страницы (index.html служит индексом каталога). Файловая система не изменяется между тем, когда страница работает, не работает, а затем снова работает.
Когда это не работает, Apache решил, что файл index.html не существует, поэтому пытается обработать список каталогов, но это намеренно отклоняется нашей конфигурацией.
Журнал ошибок Apache virtualhost содержит записи, такие как:
[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 выглядит так:
<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>
2 ответа
Поскольку это виртуальный сайт, мы также должны учитывать настройки на уровне httpd.conf... Есть ли у вас где-нибудь опции параметров Multiviews? Согласование языка SSI плюс может привести к тому, что он попытается обслуживать несуществующие версии вашего index.html. И тогда то же самое может привести к тому, что он не сможет найти требуемый ErrorDocument и даст вам еще более странные результаты.
Происходят ли переписывания более низкого уровня?
old Введенная вами строка журнала - это браузер сотового телефона. У вас есть другие Apache для работы с мобильными веб-браузерами? Делаете ли вы какие-либо переписывания, которые соответствуют HTTP_USER_AGENT и отправляете запрос в другое место?
Похоже, что вам, вероятно, просто нужно добавить опцию "Индексы" в объявлениях вашего каталога, в частности /main/directory.