Попробовал такой пример
Файл index.shtml
<!DOCTYPE HTML PUBLIC "-W3CDTD HTML 4.01EN" "http:www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>SSI</title>
</head>
<body>
<!
</body>
</html>
Файл content.html
<h1>Работает!</h1>
На Аппаче работает а на Eserv ни ошибки ни чего чистый лист. В чем грабли?
Где, что и как?
И на скока я понял плагин уже включен в Eserv3\acWEB\conf\LoadPlugins.rules.txt
Plugin: http\plugins\ssi
Хотя если у вас стоит PigMail/PigProxy, то там это настраивается по списку назначения Content-Type.
( $Id: OnRequest.rules.txt,v 1.40 2007/11/10 03:30:48 ac Exp $
DocumentRoot задает каталог, файлы из которого будут выдаваться
веб-сервером в том случае, если иные каталоги не были заданы настройкой
виртуальных серверов.
Путь в DocumentRoot задается абсолютный, например D:\IntetPub,
\\computer\share\path или относительно каталога веб-сервера,
как wwwroot в настройке по умолчанию.
)
\ 353 LOG
\ uCgiDebug ON
\ Port= 3141 | EvalRules: HTTP/XulAdmin \EOF
Uri /secure/*
[IF]
URI?P MLEN @ — 0 MAX SWAP MLEN @ + SWAP SetUri
URI?P " {Http[AdminUser]}:{Http[AdminPass]}" STR@ DUP MLEN ! SEARCH
[IF] MLEN @ /STRING SetUri Http[AdminUser] Http[AdminPass] SetUser -2 UID !
[ELSE] 2DROP Unauthorized Proxy-control-interface \EOF [THEN]
[THEN]
DocumentRoot: {HTTP[DocumentRoot]}
BitrixSitemanager[UseSM] >NUM | DocumentRoot: {BitrixSitemanager[DocumentRoot]}
Uri MailClassify/* | DocumentRoot: ..\CommonPlugins\plugins\popfile\web Replace /
Uri *XXXXXXXXXXXXXXXXXXXXXX* | Forbidden \EOF
\ Port= 80 | DocumentRoot: wwwroot
User NIP 0= | EvalRules: IpMacAuth
Port= {Http[AdminPort]} Port= {Http[AdminSslPort]} OR | EvalRules: http\AdminOnRequest1
Uri /my/* | EvalRules: http\MyOnRequest1
HTTP[Active] >NUM 0= | DocumentRoot: {HTTP[DocumentRoot]}\tempdown
Port= {Http[Port]} Port= {Http[SslPort]} OR | EvalRulesIfExists: http\CustomOnRequest
DirectoryNotfound: index.php index.f 404.php download.php index.e
( DirectoryIndex задает последовательность поиска индексных файлов в
каталоге для случая, когда имя файла не задано, а задан только каталог.
)
DirectoryIndex: index.f index.html index.htm index.php3 index.php index.phtml index.cgi default.htm index.fxml index.e index.ew
\ FILENAME TYPE CR
( Примеры назначения других корневых каталогов в зависимости от
значений заголовков HTTP-запроса.
)
\ Host: ~ ac* | DocumentRoot: ac\wwwroot
\ Accept-Language: ~ *ru* | DocumentRoot: ac\wwwroot\ru
\ Host: ~ * | DocumentRoot: c:\eserv2\wwwroot
\ Uri /admin/* | DocumentRoot: c:\eserv2\wwwroot
\ CR Cookie: STR@ TYPE CR
\ Uri /phpmyadmin* | VirtualRoot: C:\PRO\my-web\phpmyadmin\
\ Uri /progs/* | Replace /download/
\ Uri /download/* | Redirect http://www.nncron.ru{URI}
( Способ авторизации — имя файла или слова, реализующего вариант обработки
запроса LoginUser
)
\ AuthMethod: AuthFile
\ AuthMethod: NtLogon
\ AuthMethod: AuthDomainsDebug
\ LOGIN
\ User =~ admin | Pass =~ admin_pass | TRUE UID !
User NIP UID @ -2 <> AND
[IF]
Port= {Http[AdminPort]} Port= {Http[AdminSslPort]} OR Uri /my/* 0= AND
[IF]
Http[AdminUser] NIP 0= Http[AdminPass] NIP 0= OR
[IF]
TRUE UID ! DocumentRoot: {HTTP[AdminDocumentRoot]}\setpass DirectoryIndex: index.f
[ELSE] Http[AdminPass] NIP 32 <> | Http[AdminPass] MD5 S" Http[AdminPass]" IniS!
UID @ | Pass NIP 0= | UID 0! Unauthorized Proxy-control-interface \EOF \ админу IP-авторизацию не дадим
User= {Http[AdminUser]} PassMD5= {Http[AdminPass]} AND UID !
UID @ 0= | TRUE UID ! DocumentRoot: {HTTP[AdminDocumentRoot]}\wrongpass DirectoryIndex: index.f
[THEN]
[ELSE]
UID @ 0= | AuthMethod: AuthDomains LOGIN
[THEN]
[THEN]
\ разрешим обращение к спискам по макроименам
Uri *}* | UID @ | Port= {Http[AdminPort]} Port= {Http[AdminSslPort]} OR | URI?P S@ URI-DECODE S@ 11 — 0 MAX SWAP 11 + SWAP 2DUP \>/ Redirect " /main/{s}"
( Назначение выдаваемого сервером поля Content-Type в зависимости от
расширения файла.
)
File *.gif | ContentType image/gif
File *.css | ContentType text/css
File *.html | ContentType text/html
File *.htm | ContentType text/html
File *.shtml | ContentType text/html
File *.xml | ContentType text/xml
File *.xsl | ContentType text/xml
File *.xslt | ContentType text/xml
File *.xul | ContentType application/vnd.mozilla.xul+xml
File *.txt | ContentType text/plain
File *.jpg | ContentType image/jpeg
File *.png | ContentType image/png
File *.zip | ContentType application/zip
File *.rar | ContentType application/x-compressed
File *.log | ContentType text/plain
File *.key | ContentType application/octet-stream
File *.exe | ContentType application/octet-stream
File *.doc | ContentType application/octet-stream
File *.hta | ContentType application/hta
File *.svg | ContentType image/svg+xml
File *.ics | ContentType text/calendar
File *.wml | ContentType text/vnd.wap.wml
Uri *DATA/temp/*.log | ContentType text/xml
( Если клиент работает не обычными HTTP-методами, а WebDAV-методами,
то назначение обычных CGI-обработчиков нужно исключить, и заодно
проверить права доступа к DAV.
)
ACTION =~ Dav*
[IF] EvalRules: HTTP/DAV [ELSE] EvalRules: HTTP/CGI [THEN]
( Если Uri в запросе не заканчивается на "/", но соответсвующий
ресурс на сервере является не файлом, а каталогом — производится
редирект на Uri с "/" в конце. Это необходимо для правильной
обработки ссылок браузером.
)
FILENAME IsDirectory FILENAME + 1- C@ CHAR \ <> AND | Redirect {URI}/
( Правила для звонилки )
[DEFINED] Dial [IF] EvalRules: HTTP/Dial [THEN]
Port= {Http[AdminPort]} Port= {Http[AdminSslPort]} OR | EvalRules: http\AdminOnRequest2
Uri /my/* | EvalRules: http\MyOnRequest2
\ Port= {Http[AdminPort]} 0= | Uri /admin/* | UID @ 0= | Unauthorized "Web Admin"
( Базовая проверка прав доступа. Безусловное закрытие Uri,
содержащих ".." для предотвращения выхода на вышележащие каталоги
)
Uri *..* | Forbidden
Uri *::$* | Forbidden
В порядке бреда — если вешать обработчик на расширение STHML, то дополните уже существующую строку:
Может стоить какой нить всетаки ФАК написать вопрос задан, ответ получен, добавить в ФАК чтобы другие не спрашивали? Не все перл знают то.
Хотите пакет с документацией — PigMail вам в помощь. Расширения для acWEB, как и сам acWEB — свободно.