Apache LimitExcept возвращает ошибку 400 для разрешенного метода

Apache LimitExcept возвращает ошибку 400 для разрешенного метода

У меня в Apache есть следующая директива httpd.conf:

<LimitExcept OPTIONS PROPFIND REPORT>
   deny from all
</LimitExcept>

OPTIONSи PROPFINDработают как и ожидалось, но REPORTвозвращает 400: Bad Request. Удалите LimitExceptalltogether и все заработает как и ожидалось.

Есть идеи, почему это может быть?

(Пожалуйста, посмотримой вопрос здесьчтобы увидеть, что я пытаюсь сделать).

Журнал доступа показывает:

192.168.161.1 - - [21/Jun/2010:08:42:26 +1000] "REPORT /logs/MV101Apps/!svn/bc/7699/MyApp/MyApps.edp HTTP/1.1" 400 101

Журнал ошибок показывает:

[Mon Jun 21 08:42:26 2010] [error] [client 192.168.161.1] client denied by server configuration: C:/Program Files/CollabNet/Subversion Server/httpd/htdocs/logs

Обновлять

Хорошо, быстрый осмотр показывает, что как с , так и без , <LimitExcept>URL REPORTостается тем же самым. Вот как выглядит журнал без <LimitExcept>(все остальное в конфигурации осталось прежним):

192.168.161.1 - - [22/Jun/2010:21:03:42 +1000] "REPORT /logs/MV101Apps/!svn/bc/7821/MyApp/MyApps.edp HTTP/1.1" 200 115

(обратите внимание, что этот URL-адрес — это URL-адрес Subversion, сгенерированный командой svn log— я не добавляю !svnк нему)

Полный VirutalHost /logs/выглядит так:

<Location /logs/>
   DAV svn
   SVNParentPath C:\SVN
   <LimitExcept OPTIONS PROPFIND REPORT>
       deny from all
   </LimitExcept>
</Location>

решение1

Вот как выглядит последняя версия mod_dav.c в версии 2.2.15 (отредактировано для краткости):

static int dav_method_report(request_rec *r)
{
  int result;
  apr_xml_doc *doc;

  if ((result = ap_xml_parse_input(r, &doc)) != OK)
    return result;
  if (doc == NULL) {
    return HTTP_BAD_REQUEST;
  }

Итак, моя интуиция подсказывает, что ap_xml_parse_input(r, &doc)) оставляет doc=NULL; основываясь на невозможности доступа к этому сомнительному имени документа (в нем есть !?) и выдает ответ 400:

"REPORT /logs/MV101Apps/!svn/bc/7699/MyApp/MyApps.edp HTTP/1.1"

...

client denied by server configuration: C:/Program Files/CollabNet/Subversion Server/httpd/htdocs/logs

...похоже, проблема в том, как виртуальные /logs/ из access_log сопоставляются с этим каталогом в error_log, и есть ли надлежащие элементы управления доступом, позволяющие читать ресурсы из этого местоположения. Далее нам нужно увидеть всю эту информацию о конфигурации.

Связанный контент