Веб-сервер 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.

Другие вопросы по тегам