|
|
|
Кажется есть решение
В принципе можно зайти с другого боку. На Action свет клином не сошелся. Есть mod_rewrite. Хотелось бы узнать мнение разработчиков - насколько выглядит работоспособным такое решение:
Можно вместо AddHandler и Action в .htaccess прописать следующее:
#-------------------------------------------------- RewriteEngine on RewriteRule .*\.html(\?.*)?$ /cgi-bin/parser_shell$1 #--------------------------------------------------
А скрипт cgi-bin/parser_shell сделать таким:
#!/usr/bin/perl
$prog='parser2.cgi';
$path=$ENV{'SCRIPT_FILENAME'}; $path=~s/(.*\/).*?$/$1/s;
$ENV{'PATH_INFO'}=$ENV{'REQUEST_URI'}; $ENV{'PATH_TRANSLATED'}=$ENV{'DOCUMENT_ROOT'}.$ENV{'REQUEST_URI'};
system("$path$prog"); #-------------------------------------------------------
Здесь предполагается, что parser2.cgi лежит в том же каталоге, что и parser_shell, кроме того, если какой-то каталог к сайту добавлялся посредством директивы Alias, то нужно писать более другой способ определять $ENV{'PATH_TRANSLATED'}, но общая идея та же.
Ежели кто хорошо представляет себе механизмы взаимодействия парсера с переменными окружения, создаваемыми apache - не видит ли он каких-либо граблей в предлагаемом способе?
|