Если коротко - эта связка не работает. Вопрос - только ли у меня так?
Юзер 11.10.2005 11:30
В наличии сервер Apache/2.0.54 (FreeBSD 5.4).
Раньше проект работал под Apache 1.3 - никаких проблем не было.
Задача: передавать урлы несуществующих файлов парсер-скрипту, который извлекает нужные документы из базы или выдает сообщение об ошибке (404 и т.д.).
Область проблемы: работа rewrite_mod c файлами, которым назначен обработчик в виде CGI скрипта. (Handler/Action).
Суть проблемы: согласно rewrite_log - происходит корректный разбор строки согласно условиям и регулярному выражению, после чего ядро возвращает модулю строку
/cgi-bin/parser3.cgi/our_parser_file.html, и rewrite_mod разбирает эту строку.
Далее ядро снова ему возвращает /cgi-bin/parser3.cgi/cgi-bin/parser3.cgi/our_parser_file.html и так до тех пор, пока не будет достигнуто MaxRedirects или ограничение на число внутренних подзапросов.
Что пробовали:
- огромное количество экспериментов с rewrite_mod (на 1.3 все работает как часы)
- назначали ForceType для <Location>, <Files> и т.д. (на 1.3 работает и выглядит очень красиво)
- делали cgi скрипт, с заголовком
#!/loca/usr/bin/parser.cgi
[парсерный код]
Но он работал только при запуске из консоли, на вебе - просто стандартный ответ парсера.
- Ставили outputFilter (через mod_ext_filter): тоже самое + проблемы c stdin и переменными окружения.
и т.д.
В общем, можно очень много писать - что делали, в чем была причина неработоспособности.
Единственный рабочий вариант - DocumentError + DirectoryIndex.
Можно ли решить задачу как-нибудь "штатным" способом?